考虑一下这个
template<typename T>
struct A {
enum class X {
V = T()
};
};
Run Code Online (Sandbox Code Playgroud)
对于成员类和成员函数,C++ 11(和C++ 03)将不会实例化它们的定义,除非我们以需要它们定义的方式使用它们.这是真的enum class吗?
// valid?
A<std::string> a;
Run Code Online (Sandbox Code Playgroud)
不幸的是,我无法检查编译器,因为C++ 11刚刚出门,一切都不可靠,似乎.