Decision Board

함수 템플릿은 “같은 알고리즘 + 타입별 생성”일 때 가장 선명하다

템플릿을 쓰기 전에는 중복 제거 효과뿐 아니라 추론 가능성, 연산 요구, 생성 코드 증가까지 함께 봅니다.

판정

네 질문이 모두 예에 가까우면 템플릿이 맞다

명시 지정

반환 타입만으로는 T를 모른다

template <typename T>
T create_zero();

auto n = create_zero<int>();

인자에 T가 없으면 호출부에서 <int> 를 적어야 합니다.

제약

가능한 타입을 선언부에 드러낸다

template <std::totally_ordered T>
T max_value(T a, T b);

오류가 함수 본문 깊은 곳이 아니라 호출 경계에서 짧게 납니다.

장점

중복 감소, 타입 안정성, 런타임 오버헤드 없는 코드 생성

비용

사용 타입이 많으면 컴파일 시간과 생성 코드 크기가 늘어납니다.

위험 신호

타입마다 의미가 달라지면 템플릿보다 명시 오버로드가 읽기 쉽습니다.