ho notato che se faccio qualcosa di simile in C++ utilizzando Microsoft Visual Studio Express 2013:Bel modo di dichiarare enumerazioni in C++, senza gonfiore del namespace
namespace LogLevelEnum {
enum Type {
ALL,
FINEST,
FINE,
INFO,
WARNING,
SEVERE,
OFF
};
}
typedef LogLevelEnum::Type LogLevel;
posso accedere al enum elementi utilizzando le cose come LogLevel::INFO
e LogLevel::WARNING
, ma non facendo semplicemente INFO
o WARNING
. Mi piace così perché non inserisce tanti simboli nello spazio dei nomi che lo circonda.
Tuttavia, mi chiedevo se questo è un comportamento standard. So che le classi e spazi dei nomi possono essere indicizzati utilizzando l'operatore ::
, ma fa un po 'meno senso per quella di lavorare anche su enumerazioni, considerando semplicemente scaricano tutto nello spazio dei nomi è in.
Basta usare un [scope enum] (http://en.cppreference.com/w/cpp/language/enum). – chris
C++ 11 classi di enumerazione? –
@chris: Ah, non sapevo di questi. Credo che userò questi. Mi chiedo ancora come sia definito esattamente il comportamento di ciò che stavo usando. – RPFeltz