Namespaces
Variants

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

From cppreference.net
C++ named requirements

Customization Point Objects sind zustandslose Function Objects eines literal semiregular Klassentyps.

Alle Anpassungspunktobjekte desselben Klassentyps sind gleich. Die Effekte des Aufrufs verschiedener Instanzen dieses Typs mit denselben Argumenten sind äquivalent, unabhängig davon, ob der Ausdruck, der die Instanz bezeichnet, ein Lvalue oder Rvalue ist, const-qualifiziert oder nicht. Allerdings ist eine volatile-qualifizierte Instanz nicht aufrufbar. Daher können Anpassungspunktobjekte frei kopiert werden, und die Kopien können austauschbar verwendet werden.

Sei Fn der Typ eines Customization Point Objects und Args... eine Menge von Typen. Wenn std:: declval < Args > ( ) ... die Anforderungen an Argumente für Fn erfüllt,
modelliert Fn

Andernfalls nimmt kein Funktionsaufrufoperator von Fn an der Überladungsauflösung teil.