템플릿의 입력 조건을 이름 붙인다
공개 템플릿 API에서 `std::integral`이나 `Addable` 같은 제약으로 오용을 빨리 차단한다.
template<Addable T>
Concepts, `if constexpr`, `consteval`, `constinit`은 모두 “언제 결정할 것인가”를 명확히 하는 도구다. 공개 API, 템플릿 분기, 즉시 계산, 정적 초기화를 서로 다른 문제로 구분한다.
공개 템플릿 API에서 `std::integral`이나 `Addable` 같은 제약으로 오용을 빨리 차단한다.
template<Addable T>
산술 타입, 문자열, 사용자 정의 타입처럼 분기별 코드가 다를 때 안전하게 나눌 수 있다.
if constexpr (std::is_arithmetic_v<T>)
런타임 값으로 호출되면 오류가 나므로, 테이블 생성이나 고정 규칙 계산에 적합하다.
consteval int square(int x)
`constexpr`처럼 상수 값 자체를 강제하기보다, 정적 초기화 안정성을 보장한다.
constinit int g_retry_limit = 3;