Рассмотрим этот
template<typename T>
struct A {
enum class X {
V = T()
};
};
Для классов-членов и функций-членов С++ 11 (и С++ 03) не будет создавать свое определение, если мы не будем использовать их так, чтобы их определение. Это верно для enum class
?
// valid?
A<std::string> a;
К сожалению, я не могу проверить компиляторы, так как С++ 11 находится только на пороге, и, похоже, все еще не надежно.