>백엔드 개발 >C++ >C는 템플릿 추론에서 부분 순서를 어떻게 결정합니까?

C는 템플릿 추론에서 부분 순서를 어떻게 결정합니까?

DDD
DDD원래의
2024-12-01 03:38:09519검색

How Does C   Determine Partial Ordering in Template Deduction?

템플릿 추론의 부분 순서 지정

유형 추론을 위한 템플릿의 부분 순서를 결정할 때 C 표준은 다음과 관련된 특정 절차를 사용합니다. 변형된 함수 유형 비교. 관련된 각 템플릿에 대해 각 템플릿 매개변수를 고유한 가상 유형으로 대체하여 원래 함수 유형이 변환됩니다. 이 변환된 함수 유형은 추론 과정에서 인수 템플릿으로 사용되고 다른 템플릿의 원래 함수 유형은 매개변수 템플릿으로 사용됩니다.

이 비교는 양방향으로 수행됩니다.

  • 첫 번째 템플릿의 변환된 유형을 인수 템플릿으로 사용하고 두 번째 템플릿의 원본 유형을 매개변수 템플릿으로 사용합니다.
  • 변환된 유형의 템플릿을 사용합니다. 두 번째 템플릿을 인수 템플릿으로 사용하고 첫 번째 템플릿의 원래 유형을 매개변수 템플릿으로 사용합니다.

한 방향에서는 일치가 설정될 수 있지만 다른 방향에서는 일치가 설정되지 않으면 하나의 템플릿이 더 많은 것으로 결정됩니다. 다른 것보다 전문적이다. 그렇지 않으면 두 템플릿 모두 더 전문화된 것으로 간주되지 않습니다.

이 절차는 여러 템플릿이 동일하게 적용될 수 있는 템플릿 추론의 모호성을 해결하는 데 도움이 됩니다. 변환된 유형을 비교함으로써 컴파일러는 전달되는 특정 인수와 더 정확하게 일치할 수 있는 템플릿을 결정할 수 있습니다.

위 내용은 C는 템플릿 추론에서 부분 순서를 어떻게 결정합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.