如何enum class在C++ 11中输出a的值?在C++ 03中,它是这样的:
#include <iostream>
using namespace std;
enum A {
a = 1,
b = 69,
c= 666
};
int main () {
A a = A::c;
cout << a << endl;
}
Run Code Online (Sandbox Code Playgroud)
在c ++ 0x中,此代码无法编译
#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>&&' …Run Code Online (Sandbox Code Playgroud) 这些代码有什么不同:
std::string dirName = argv[1];
MyRecordDatabaseType myDB(Selector<std::string>((std::string)dirName));
Run Code Online (Sandbox Code Playgroud)
和
std::string dirName = argv[1];
MyRecordDatabaseType myDB(Selector<std::string>(dirName));
Run Code Online (Sandbox Code Playgroud)
我不知道为什么第二个版本不能编译.
编译器告诉我:
error: request for member ‘createGroupWriter’ in ‘myDB’, which is of non-class type ‘main(int, char**)::MyRecordDatabaseType(Selector<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >)’
Run Code Online (Sandbox Code Playgroud)
在线:
MyRecordDatabaseType::writer_type myWriter(myDB.createGroupWriter(groupName));
Run Code Online (Sandbox Code Playgroud)
抱歉,但我无法向您展示Selector或任何其他类的代码.
也许你没有那个可以帮助我?