Namespaces
Variants

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

From cppreference.net
C++ named requirements

Objets de point de personnalisation sont des objets fonction sans état de type littéral semiregular .

Tous les objets de point de personnalisation du même type de classe sont égaux. Les effets de l'invocation de différentes instances de ce type sur les mêmes arguments sont équivalents, que l'expression désignant l'instance soit une lvalue ou une rvalue, qualifiée const ou non. Cependant, une instance qualifiée volatile n'est pas requise d'être invocable. Ainsi, les objets de point de personnalisation peuvent être copiés librement et les copies peuvent être utilisées de manière interchangeable.

Soit Fn le type d'un objet de point de personnalisation, et Args... un ensemble de types, si std:: declval < Args > ( ) ... satisfait aux exigences pour les arguments de Fn , Fn modélise

Sinon, aucun opérateur d'appel de fonction de Fn ne participe à la résolution de surcharge.