Nach this, eine Funktion mit constexpr
deklariert werden, müssen einige Anforderungen erfüllen, von denen eine ist wie folgt:constexpr-Funktion muss einen Argumentwert haben?
gibt es mindestens ein Argument Wert, so dass ein Aufruf der Funktion ein ausgewertet werden konnten subexpression eines Kern konstanten Ausdruck ...
Nun, constexpr
Funktion keine Argumente haben:
constexpr int Bar(/* empty */) { return 0xFF; }
constexpr int value = Bar(); // Valid expression
constexpr
Funktion, die als Unterroutine aufgerufen wird, kann den gesamten Ausdruck auch nicht als Kernkonstantenausdruck bestimmen.
Also was bedeutet es von ein Argument Wert muss existieren?
[Update für zukünftige Leser]
Offenbar ist die Beschreibung über die Anforderungen der constexpr function
ist seit dieser Frage festgelegt von:
gibt es mindestens ein Argument Wert, so dass ein Der Aufruf der Funktion könnte ein ausgewerteter Unterausdruck eines Kernkonstantenausdrucks sein.
zu:
es mindestens einen Satz von Argument besteht Werte so dass ein Aufruf der Funktion ein ausgewerteter subexpression eines Kern konstanten Ausdruck ...
Ich * denke * es bedeutet, dass * für jedes Argument * gibt es mindestens usw. –
@MartinBonner nein, es bedeutet für alle Argumente als Ganzes –