Leider kann man nicht so etwas tun:constexpr typedef
typedef constexpr int cint;
Und das ist nicht das Ende der Welt .... müssen nur die zusätzlichen 9 tippen (10 wenn Sie den Raum einschließen) Zeichen jedes Mal, wenn Sie constexpr
verwenden müssen.
Aber ich habe eine Klasse erstellt, und ich möchte nur der Lage sein, constexpr Versionen dieser Klasse zu erstellen (eine nicht constexpr
Version verwenden würde keinen Sinn machen).
So war mein Plan, um die Klasse mit einem nicht zugänglich Namespace zu erstellen, und dann in meinem Haupt-Namensraum ein constexpr
typedef erstellen, etwa so:
namespace MainNameSpace{
namespace detail{
class MyClass{};
}
typedef constexpr detail::MyClass MyClass;
}
Leider entdeckte ich, dass dies nicht getan werden kann ... Gibt es eine Möglichkeit, einen ähnlichen Effekt zu erzielen (ohne Verwendung von Makros)?
'conexpr' ist nicht Teil des Typsystems. Es ist Teil des Systems * expression *, d. H. Der Natur von * Werten *. –
@KerrekSB Ich entdeckte, dass der harte Weg – DarthRubik
'mit einer non consExpr-Version keinen Sinn machen würde 'Wie macht eine constexpr-Version Sinn? Was erwartest du von ihm? – deviantfan