Auto를 C에서 인수로 사용할 수 있습니까?
C에서 auto를 다른 함수에 인수로 전달하는 것이 주제였습니다. 토론. 이전에는 유형 추론의 모호성으로 인해 불가능했습니다. 그러나 C 20에서는 이 기능을 허용하는 중요한 변경 사항이 도입되었습니다.
C 20: 무제한 자동 매개변수
C 20에서는 자동을 함수 매개변수 유형으로 사용할 수 있도록 허용합니다. "제약되지 않은 자동 매개변수"로 사용됩니다. 이 기능은 제약 없이 모든 유형을 전달할 수 있도록 하여 최대의 유연성을 제공합니다.
int function(auto data) { // Do something, no constraints on data }
이 구문은 모든 유형을 허용하는 축약된 함수 템플릿을 정의하는 것과 동일합니다.
C 20: 제약된 자동 매개변수
비제약된 자동 매개변수 외에도 C 20 또한 개념을 사용하여 제한된 자동 매개변수를 지원합니다. 개념은 유형에 대한 요구 사항을 지정하는 제약 조건입니다.
void function(const Sortable auto& data) { // Do something that requires data to be Sortable // Assuming there is a concept named Sortable }
이 예에서 Sortable 개념은 데이터 유형을 Sortable 인터페이스를 구현하는 유형으로 제한합니다.
축약된 함수 템플릿
제약되지 않은 자동 매개변수를 사용하여 축약된 기능 템플릿을 만들 수 있습니다. 축약된 함수 템플릿은 함수 인수에서 템플릿 인수를 추론하는 템플릿 함수입니다. 이를 통해 더욱 간결하고 유연한 함수 선언이 가능해집니다.
template<typename T> void print(T data) { std::cout << data << std::endl; } int main() { auto data = 42; print(data); // Assumed to print 42 }
이 예에서 인쇄 함수는 제공된 인수를 기반으로 데이터 유형을 추론하는 축약된 함수 템플릿입니다.
위 내용은 C에서 Auto를 함수 인수로 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!