Es gibt keinen Unterschied für Member des Integral- oder Enumerationstyps (wie in Ihrem Beispiel). Für alle anderen Typen benötigen konstante Ausdrücke constexpr
:
eine lvalue-to-rvalue-Konvertierung (4.1), sofern sie nicht auf
angewendet wird
- ein nichtflüchtiger glvalue des Integral- oder Enumerationstyps, der sich auf ein vollständiges nichtflüchtiges const-Objekt mit einem vorhergehenden bezieht Initialisierung, initialisiert mit einem konstanten Ausdruck oder [...]
- ein nichtflüchtiger glvalue, der sich auf ein nicht-flüchtiges Objekt bezieht, das mit
constexpr
definiert ist, oder das sich auf ein nicht veränderbares Unterobjekt eines solchen Objekts bezieht ein Objekt oder [...]