1.6.1 단정
헤더 <cassert>의 매크로 assert는 C에서 상속받은 매크로지만 여전히 유용하다. 표현식을 계산한 뒤 결과가 false면 프로그램을 즉시 종료한다. assert는 프로그래밍 오류를 감지하는 데 사용해야 한다. 음수가 아닌 실수의 제곱근을 계산하는 멋진 알고리즘을 구현한다고 가정해 보자. 그렇다면 우리는 수학에서 결과가 음이 아님을 안다. 그렇지 않으면 계산이 뭔가 잘못되었다는 것이다.
#include <cassert> double square_root(double x) { check_somehow(x >= 0); ... assert(result >= 0.0); return result; }
첫 줄에 있는 검사 함수를 구현하는 방법은 잠시 미뤄두자. assert의 결과가 false라면 프로그램은 다음과 같은 오류를 출력한다.
assert_test: assert_test.cpp:10: double square_root (double):
Assertion 'result >= 0.0' failed.