Почему этот код не компилируется и что я могу сделать для его компиляции?C++ 11 класс перезаписи enum и unsigned int в случае коммутатора не будет компилироваться
#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:
Не удается построить в GCC и Clang, работает в MSVC 2013.
'static_cast (2)' –
Borgleader
строго типизированных перечислений являются строго типизированными и не имеют неявные преобразования к целому типу. –
Я думал, что «: unsigned int» разрешил это? – paulm