> 백엔드 개발 > C++ > C 14 일반 람다는 어떻게 유형 일반 동작을 달성합니까?

C 14 일반 람다는 어떻게 유형 일반 동작을 달성합니까?

DDD
풀어 주다: 2024-12-10 04:59:08
원래의
965명이 탐색했습니다.

How Do C  14 Generic Lambdas Achieve Type-Generic Behavior?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿