constexpr und casts
-
Hi,
GCC 4.6.1 nimmt folgende Funktion an und meckert auch nicht
constexpr unsigned int SquareToUInt(Square s) //Square ist eine enum class { return static_cast<unsigned>(s); }Ich frage mich ob der cast den kompletten Sinn von constexpr nicht verwirft? Sprich, der Compiler macht eine normale Funktion daraus?
Grüße
OP
-
Ok, ich glaube wenn, dann macht die enum class schon einen Strich durch die Rechnung, oder?
Grüße
OP
-
Nein, das ist vollkommen okay, solange der übergebene Parameter auch constexpr ist.
-
Das würde ja auch auf enum class zutreffen oder nicht?
enum class:
enum class Square : unsigned int { A = 1, B = 2 };Aufruf:
SquareToUInt(Square::A); //Sollte ja const sein oder nicht?