제공된 C 코드에서 템플릿 함수 cal_size는 배열 참조 인수의 크기를 인쇄합니다. 템플릿 매개변수 N이 전달된 배열의 길이를 자동으로 반영하는 방식이 흥미롭습니다.
N은 초기화된 변수가 아닙니다. 이는 컴파일 타임 상수입니다. 템플릿 인수 추론이라는 프로세스를 통해 T와 N 모두 템플릿 함수에 전달된 인수에서 추론됩니다.
cal_size에 대한 다음 호출을 고려하세요.
void cal_size_int_6(int (&a)[6]) { std::cout << "size of array is: " << 6 << std::endl; }
void cal_size_int_1(int (&a)[1]) { std::cout << "size of array is: " << 1 << std::endl; }
기본적으로 cal_size 템플릿 N 및 T 값이 하드코딩된 개별 특수 함수로 변환됩니다. 기본 함수는 다음과 같습니다.
int main() { cal_size_int_6(a); cal_size_int_1(b); }
요약하면 템플릿 인수 추론을 사용하면 템플릿이 인수 유형에서 배열 크기를 추론할 수 있습니다. 기본 메커니즘에는 각각 정적으로 결정된 N 및 T 값이 있는 고유한 인수 유형 조합마다 특수 함수를 생성하는 작업이 포함됩니다.
위 내용은 템플릿 인수 추론은 C에서 배열 크기를 어떻게 결정합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!