Warum kompiliert dieser Code nicht, und was kann ich tun, damit es kompilieren?C++ 11 Mischen enum-Klasse und unsigned int in Switch-Fall wird nicht kompilieren
#include <iostream>
using namespace std;
enum class myEnum : unsigned int
{
bar = 3
};
int main() {
// your code goes here
unsigned int v = 2;
switch(v)
{
case 2:
break;
case myEnum::bar:
break;
}
return 0;
}
ideone:
prog.cpp: In function 'int main()':
prog.cpp:18:16: error: could not convert 'bar' from 'myEnum' to 'unsigned int'
case myEnum::bar:
schlägt in GCC und Clang zu bauen, arbeitet in MSVC 2013
'static_cast (2)' –
Borgleader
stark typisierte Aufzählungen stark typisiert sind, und haben keine impliziten Konvertierungen zu einem integralen Typ. –
Ich dachte: "unsigned int" erlaubt das? – paulm