const와 마찬가지로, 코드에서 값을 수정하려고 하면 컴파일러 오류가 발생하도록 변수에 적용할 수 있음.
const와 달리, constexpr은 함수 및 클래스 생성자에도 적용할 수 있음!..
constexpr 함수를 사용하는 경우 컴파일 타임에 계산가능한 경우는 반환값에 대한 상수값을 미리 생성하고, 그렇치 않은 경우는 일반함수처럼 런타임에 값을 생성함. (2가지 유형 모두 사용될 수 있음)
(디버깅 브레이크 포인터로 함수내 코드가 브레이크가 잡히는지로 확인 가능)
런타임 대신 컴파일 타임에 값을 계산할 수 있는 경우 프로그램이 **더 빨리 실행되고 더 적은 메모리**를 사용하는 데 도움이 된다.
{
return n == 0 ? 1 :
n % 2 == 0 ? exp(x * x, n / 2) :
exp(x * x, (n - 1) / 2) * x;
};
댓글 없음:
댓글 쓰기