Namespaces
Variants

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

From cppreference.net
C++ named requirements

Objetos de punto de personalización son objetos de función sin estado function objects de un tipo de clase literal semiregular .

Todos los objetos de punto de personalización del mismo tipo de clase son iguales. Los efectos de invocar diferentes instancias de ese tipo sobre los mismos argumentos son equivalentes, ya sea que la expresión que denota la instancia sea un lvalue o rvalue, calificado const o no. Sin embargo, no se requiere que una instancia calificada volatile sea invocable. Por lo tanto, los objetos de punto de personalización pueden copiarse libremente y las copias pueden usarse indistintamente.

Sea Fn el tipo de un objeto de punto de personalización, y Args... un conjunto de tipos, si std:: declval < Args > ( ) ... cumple con los requisitos para argumentos de Fn , Fn modela

De lo contrario, ningún operador de llamada a función de Fn participa en la resolución de sobrecarga.