태그: assertion
3편
-
C++26 Contracts: pre·post·contract_assert로 사전조건·사후조건 표현하기와 평가 의미
assert와 주석으로 적던 함수의 전제 조건을 C++26 Contracts(P2900)의 pre, post, contract_assert로 선언하는 방법을 설명합니다. ignore·observe·enforce·quick_enforce 평가 의미, 위반 핸들러, 배열 접근·리소스 관리 예제, assert·예외와의 비교를 다룹니다.
-
C++ static_assert: 타입 크기·템플릿 제약·구조체 레이아웃을 컴파일 시점에 검증하기
static_assert로 타입 크기, 템플릿 인자 제약, 플랫폼 조건, 구조체 레이아웃을 컴파일 시점에 검증하는 방법을 다룹니다. NDEBUG에 영향받는 assert와의 차이, 런타임 값을 넣었을 때의 에러, 템플릿에서 검사가 언제 일어나는지도 설명합니다.
-
C++ 로깅·Assertion | 프로덕션 간헐적 크래시, 로그 없이 재현 불가일 때
로그가 없어 재현조차 안 되는 프로덕션 크래시를 계기로 로그 레벨 설계, assert와 static_assert의 쓰임 구분, spdlog의 싱크·포맷·로테이션 설정을 다룹니다. assert에 부수 효과를 넣거나 사용자 입력 검증에 assert를 쓰는 실수도 설명합니다.