considerare questo unoI membri di "classe enum" sono istanziati immediatamente o successivamente quando vengono utilizzati?
template<typename T>
struct A {
enum class X {
V = T()
};
};
Per le classi di membro e funzioni membro, C++ 11 (e C++ 03) non si istanziare la loro definizione a meno che non li usiamo in un modo che richiede la loro definizione. È vero per enum class
?
// valid?
A<std::string> a;
Purtroppo, non posso verificare compilatori, poiché C++ 11 è appena fuori dalla porta e tutto ciò che non è affidabile ma, a quanto pare.
Non penso che 'A a;' sia valido a meno che 'std :: string' possa essere convertito implicitamente in' int'. Ma poi di nuovo ... –
Florian