Wie kann ich den Wert einer enum class
in C++ 11 ausgeben? In C++ 03 ist es wie folgt aus:Wie kann ich den Wert einer Enum-Klasse in C++ ausgeben 11
#include <iostream>
using namespace std;
enum A {
a = 1,
b = 69,
c= 666
};
int main() {
A a = A::c;
cout << a << endl;
}
in C++ 0x dieser Code nicht
#include <iostream>
using namespace std;
enum class A {
a = 1,
b = 69,
c= 666
};
int main() {
A a = A::c;
cout << a << endl;
}
prog.cpp:13:11: error: cannot bind 'std::ostream' lvalue to 'std::basic_ostream<char>&&'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/ostream:579:5: error: initializing argument 1 of 'std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&&, const _Tp&) [with _CharT = char, _Traits = std::char_traits<char>, _Tp = A]'
bei Ideone.com
Warum möchten Sie enum ausgeben? enum-Klasse wird verwendet, um enum-Werte nicht mit int-Darstellung zu verwechseln – RiaD