추론된 T의 값·참조 형태 확인
값, 참조, const, 배열, 문자열 리터럴이 추론에서 어떻게 변하는지 확인한다.
템플릿 함수는 하나의 함수처럼 보이지만 실제로는 인자 타입마다 다른 인스턴스를 만든다. 타입 추론과 제약이 오류 메시지의 품질을 좌우한다.
값, 참조, const, 배열, 문자열 리터럴이 추론에서 어떻게 변하는지 확인한다.
템플릿 본문에서 쓰는 연산을 concept이나 requires로 먼저 표현한다.
일반 함수, 템플릿, 특수화가 함께 있을 때 어떤 후보가 선택되는지 테스트한다.
template <typename T>
requires std::totally_ordered<T>
const T& clamp_value(const T& value, const T& low, const T& high) {
return std::min(std::max(value, low), high);
overflow-wrap: break-word;
word-break: keep-all;
}