Q.constexpr
Q. constexpr에 대해 설명
A.constexpr은 컴파일 타임에 계산 가능한 상수를 정의하거나 컴파일 타임에 실행 가능한 함수를 정의할 때 사용합니다.
| 항목 | const | constexpr |
|---|---|---|
| 상수 여부 | 런타임 상수 가능 | 컴파일 타임 상수만 가능 |
| 평가 시점 | 런타임 또는 컴파일 타임 | 무조건 컴파일 타임 |
| 함수에 사용 가능 여부 | 제한적 | 사용 가능(컴파일 타임 계산 함수 정의 가능) |
Q. constexpr 언제 쓰나요?
A. const보다 더 엄격하고, 성능 최적화나 템플릿 프로그래밍에서 자주 사용됩니다. 배열 크기 등 컴파일 타임 상수가 필요한 곳, 템플릿 인자나 조건 분기에서 상수를 넣고 싶을 때, 런타임보다 성능 최적화가 필요한 코드, enum보다 형(type)-안전한 상수가 필요할 때
Q. constexpr 함수가 반드시 컴파일 타임에 실행되나요?
A. 아닙니다. constexpr 함수는 인자가 컴파일 타임 상수일 경우에만 컴파일 타임에 실행됩니다. 런타임 인자를 넘기면 일반 함수처럼 런타임에 실행됩니다.
This post is licensed under CC BY 4.0 by the author.