Namespaces
Variants

C++ named requirements: CustomizationPointObject (since C++20)

From cppreference.net
C++ named requirements

사용자 정의 지점 객체 는 상태를 가지지 않는 함수 객체 로서 리터럴 semiregular 클래스 타입입니다.

동일한 클래스 타입의 모든 사용자 지정 지점 객체는 동등합니다. 인스턴스를 나타내는 표현식이 lvalue이든 rvalue이든, const 한정이 되었든 되지 않았든, 동일한 인수에 대해 해당 타입의 서로 다른 인스턴스를 호출하는 효과는 동등합니다. 그러나 volatile 한정된 인스턴스는 호출 가능할 필요가 없습니다. 따라서 사용자 지정 지점 객체는 자유롭게 복사될 수 있으며 복사본은 상호 교환적으로 사용될 수 있습니다.

Fn 을 사용자 정의 지점 객체의 타입으로 하고, Args... 를 타입 집합으로 할 때, 만약 std:: declval < Args > ( ) ... Fn 의 인자 요구사항을 충족한다면, Fn 은 다음을 모델링합니다.

그렇지 않으면, Fn 의 함수 호출 연산자 중 어느 것도 오버로드 해결에 참여하지 않습니다.