compile-time choice

문제의 종류가 기능 선택을 결정한다

Concepts, if constexpr, consteval, constinit은 모두 컴파일 타임을 다루지만 질문이 다르다.

concepts이 타입이 조건을 만족하는가
if constexpr템플릿 안에서 분기를 지울 것인가
consteval반드시 컴파일 타임에 계산할 것인가
constinit정적 초기화를 보장할 것인가
질문선택효과
타입 요구를 설명?concepts오류 지점을 선언부로 올림
분기 코드를 제거?if constexpr맞지 않는 가지는 인스턴스화하지 않음
항상 컴파일 타임 계산?consteval런타임 호출 자체를 허용하지 않음
초기화 순서가 위험?constinit런타임 초기화 의존을 차단

핵심 기능 이름보다 “조건 검사, 분기 제거, 강제 계산, 초기화 보장” 중 무엇이 필요한지 먼저 고른다.