C 14의 일반 람다
C 14에서 일반 람다는 인수 유형으로 auto를 사용하여 람다를 정의하여 유형 일반 동작을 활성화합니다. . 작동 방식을 이해하면 기본 메커니즘이 밝혀집니다.
템플릿 호출 연산자
일반 람다는 비템플릿 호출 연산자가 아닌 템플릿 호출 연산자를 사용하여 클로저 유형을 정의합니다. C 11 람다와 같습니다. 이는 매개변수 목록에 auto가 나타나면 컴파일러가 호출 연산자에 대한 함수 템플릿을 생성한다는 의미입니다.
예:
auto glambda = [](auto a) { return a; };
위의 람다는 다음 유형의 인스턴스:
class /* unnamed */ { public: template<typename T> T operator () (T a) const { return a; } };
유형 삭제 및 템플릿 다형성
일반 람다는 유형 삭제를 사용하는 Java의 제네릭에 더 가깝습니다. 다양한 유형의 여러 함수를 생성하는 C 템플릿과 달리 일반 람다는 유형 지우기 호출 연산자를 사용하여 단일 함수를 만듭니다.
유형 매개변수 목록
일반 람다의 호출 연산자 템플릿에는 매개변수 선언에서 auto가 발생할 때마다 템플릿 매개변수 목록이 포함되어 있습니다. 각 템플릿 매개변수의 유형은 해당 변수의 유형에 해당합니다.
결론:
C 14의 일반 람다는 다음과 같은 람다 표현식을 정의하여 유형 일반 프로그래밍을 가능하게 합니다. 템플릿화된 통화 교환원. 이는 Java의 제네릭과 유사한 유형 삭제 기능을 생성하는 간결한 방법을 제공합니다.
위 내용은 C 14 일반 람다는 어떻게 유형 일반 동작을 달성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!