Wie benennt ihr enums?
-
Ich schreibe alles klein:
enum buffer_type { buffer_fmt16, buffer_fmt32 };Komplett-Großschreibung ist den Makros vorbehalten.

-
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
enumdurchenum structersetzen. 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.