템플릿 추론의 부분 주문 절차
템플릿 추론의 부분 주문 절차는 두 기능 템플릿 간의 전문화 관계를 결정합니다. 여기에는 두 단계가 포함됩니다.
1단계: 변환
각 템플릿에 대해 부분 주문 절차는 모든 유형, 비유형을 대체하여 "변환된 함수 유형"을 생성합니다. 및 고유하고 사용되지 않는 유형이 있는 템플릿 템플릿 매개변수.
2단계: 비교
변환된 함수 유형은 두 가지 방법으로 비교됩니다.
일치 중 하나가 성공하고 다른 하나는 실패하면 일치에 성공한 템플릿이 더 특수화된 것으로 간주됩니다. 어느 쪽도 일치하지 않으면 어느 템플릿도 더 전문화되지 않은 것입니다.
예:
다음 두 가지 기능 템플릿을 고려하세요.
template<typename T, typename U> void foo(T, U); // Template 1 template<typename T> void foo(T const*, X<T>); // Template 2
결정하려면 어떤 템플릿이 더 전문적인지 우리는 다음을 수행합니다.
1. 변환된 함수 유형 생성:
2. 변환된 함수 유형 비교:
결론: 템플릿 2는 템플릿 1보다 더 전문적입니다.
위 내용은 부분 정렬은 함수 템플릿 간의 전문화를 어떻게 결정합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!