Wie benennt ihr enums?


  • Mod

    Ich schreibe es so, als ob es ein Klassentyp ist. Nach welcher Konvention ich Klassentypen schreibe ist verschieden. Alles in Großbuchstaben zu setzen ist bei mir aber für Präprozessormakros reserviert und kommt daher nicht in Frage.



  • namespace EnumType
    {
       enum EnumType_t
       {
          Item1,
          Item2,
          Item3
       };
    }
    


  • DocShoe schrieb:

    namespace EnumType
    {
       enum EnumType_t
       {
          Item1,
          Item2,
          Item3
       };
    }
    

    Da is das Anlegen einer Variablen aber ziemlich hässlich:

    EnumType::EnumType_t foo;
    

    Ich finds scheisse, dass ich nicht einfach das machen kann:

    enum Color {
      Red
    ;
    Color c;
    c = Color::Red;
    


  • enum0r schrieb:

    wie benennt ihr enums?

    CamelCase, GROSS sind bei mir nur Makros. Für Gliederung in einen Namensraum oder in eine Klasse.

    namespace Color
    {
        enum Type
        {
            Blue,
            Red,
            Yellow,
        };
    }
    
    Color::Type color = Color::Yellow;
    

    enum0r schrieb:

    Ich finds scheisse, dass ich nicht einfach das machen kann

    Kannst du mit C++0x und enum struct .



  • Nexus schrieb:

    enum0r schrieb:

    wie benennt ihr enums?

    CamelCase, GROSS sind bei mir nur Makros. Für Gliederung in einen Namensraum oder in eine Klasse.

    namespace Color
    {
        enum Type
        {
            Blue,
            Red,
            Yellow,
        };
    }
    
    Color::Type color = Color::Yellow;
    

    enum0r schrieb:

    Ich finds scheisse, dass ich nicht einfach das machen kann

    Kannst du mit C++0x und enum struct .

    Hehe, lustig. Ich kam eben auf genau die selben Lösung mit dem namespace und dann enum Type. Finde ich noch am schönsten.

    Zu den C++0x enum classes: VS2010 kann die leider nicht. 😞



  • enum0r schrieb:

    Zu den C++0x enum classes: VS2010 kann die leider nicht. 😞

    Visual Studio bietet eine Compilererweiterung an, mit der folgender Code kompiliert:

    enum Color
    {
        Blue,
        Red,
        Yellow,
    };
    
    Color color = Color::Yellow;
    

    Beim Umstieg auf C++0x könntest du dann enum durch enum struct ersetzen. Bzw. nichts tun, denn dieser Code ist dann soweit ich weiss auch standardkonform.



  • Wo gibts diese Erweiterung?



  • Ich meinte Spracherweiterung, kein Add-On. Die ist standardmässig aktiviert, du erhältst allerdings eine Warnung.

    In den Projekteigenschaften gibt es eine Option unter C/C++ -> Sprache -> Spracherweiterungen deaktivieren.



  • Nexus schrieb:

    Ich meinte Spracherweiterung, kein Add-On. Die ist standardmässig aktiviert, du erhältst allerdings eine Warnung.

    In den Projekteigenschaften gibt es eine Option unter C/C++ -> Sprache -> Spracherweiterungen deaktivieren.

    Funktioniert bei mir dennoch nicht. Ich hab die Spracherweiterungen an und das hier kompiliert nicht:

    enum class Foo {
    	X,
    	Y
    };
    


  • In meinem Code steht auch nichts von class .


Anmelden zum Antworten