1
내가 가지고 2 과부하 기능 템플릿 : szab(1, 1);
:이 같은 함수를 호출 할 때오버로드 함수 템플릿
template <class typ1, class typ2>
void szab(typ1, typ2) {cout << "2 typy" << endl;}
template <class typ1>
void szab(typ1, typ1) {cout << "1 typ" << endl;}
왜 모호함이 없다? 제 2 템플릿은 첫 번째 버전의 특별한 버전입니까? 템플릿에 2 개의 매개 변수를 선언하면 다른 유형이어야한다는 의미는 아닙니다. 왜 컴파일러는 두 번째 템플릿을 선택합니까?
관련 항목 : [over.match.best]/1 (부분 순서 지정 규칙을 사용하여 두 개의 함수 템플릿 중 어느 것이 더 나은지 * 몇 가지 인수를 결정하는 데 사용됨) 및 [temp.over]/1 (이름 확인에서 과부하 선택까지의 단계 지정). – dyp