So che in C++ 11 è possibile inoltrare un tipo enum (se è fornito il tipo di memoria) ad es.La dichiarazione di enum forward in classe è possibile?
enum E : short;
void foo(E e);
....
enum E : short
{
VALUE_1,
VALUE_2,
....
}
Ma vorrei inoltrare un enum definito all'interno di una classe, ad es.
enum Foo::E : short;
void foo(E e);
....
class Foo
{
enum E : short
{
VALUE_1,
VALUE_2,
....
}
}
È qualcosa del genere possibile in C++ 11?
Che dire in avanti dichiarando la classe prima di enum tale 'classe Foo;'? –
Ne dubito. Non è possibile inoltrare le funzioni membro dichiarate, typedefs, ect. Perché questo dovrebbe essere diverso? (Le classi C++ sono chiuse, il che significa che non possono essere modificate dopo la def.) Vedi anche http://stackoverflow.com/questions/836551/forward-declare-a-classs-public-typedef-in-c – IdeaHat
A differenza delle classi, gli spazi dei nomi possono essere aggiunti da qualsiasi luogo. Perché non mettere l'enum e la classe in uno spazio dei nomi? –