std:: invocable, std:: regular_invocable
|
Definiert im Header
<concepts>
|
||
|
template
<
class
F,
class
...
Args
>
concept invocable
=
|
(seit C++20) | |
|
template
<
class
F,
class
...
Args
>
concept regular_invocable = std :: invocable < F, Args... > ; |
(seit C++20) | |
Das
invocable
Konzept spezifiziert, dass ein aufrufbarer Typ
F
mit einer Menge von Argumenten
Args...
unter Verwendung der Funktionsvorlage
std::invoke
aufgerufen werden kann.
Das
regular_invocable
Konzept erweitert das
invocable
Konzept, indem es verlangt, dass der
invoke
Ausdruck
gleichheitserhaltend
ist und weder das Funktionsobjekt noch die Argumente verändert.
Inhaltsverzeichnis |
Gleichheitserhaltung
Ausdrücke, die in requires expressions der Standardbibliothek-Konzepte deklariert werden, müssen equality-preserving sein (sofern nicht anders angegeben).
Hinweise
Der Unterschied zwischen
invocable
und
regular_invocable
ist rein semantisch.
Ein Zufallszahlengenerator kann
invocable
erfüllen, aber nicht
regular_invocable
(
komische ausgenommen
).
Referenzen
- C++23-Standard (ISO/IEC 14882:2024):
-
-
18.7.2 Konzept
invocable[concept.invocable]
-
18.7.2 Konzept
-
-
18.7.3 Konzept
regular_invocable[concept.regularinvocable]
-
18.7.3 Konzept
- C++20-Standard (ISO/IEC 14882:2020):
-
-
18.7.2 Konzept
invocable[concept.invocable]
-
18.7.2 Konzept
-
-
18.7.3 Konzept
regular_invocable[concept.regularinvocable]
-
18.7.3 Konzept
Siehe auch
|
prüft, ob ein Typ mit den gegebenen Argumenttypen aufgerufen werden kann (als ob durch
std::invoke
)
(Klassentemplate) |
Externe Links
Ein
scherzhaftes Beispiel
eines Zufallszahlengenerators, der sowohl
invocable
als auch
regular_invocable
erfüllt.
|