wertebereich von enum
-
hola leute
wie sieht eigendlich der wertebereich von enums aus ?
ich moechte naemlich einige defines der WinAPi auf enum umlegen und die enums dann in einigen funktionen der winapi verwenden.
oder ist das eher eine schlechte idee ?Meep Meep
-
Der Wertebereich wird schon ausreichen (hab aber keine Ahnung, was dazu im Standard steht), aber wozu das ganze?!
-
Ja ist eine schlechte Idee, da sie nicht sonderlich Sinnvoll ist.
-
enums haben den Wertebereich von ints.
-
werden enums nicht sowieso wie defines gleich zur compilezeit durch den zahlen wert ersetzt?
-
Die Größe des enums hängt vom größten Wert ab. Der größte mögliche Wert entspricht dem von numeric_limits< unsigned int >::max() iirc.
Also 32bit gehen auf jeden Fall unter Windows.
-
Maxi schrieb:
werden enums nicht sowieso wie defines gleich zur compilezeit durch den zahlen wert ersetzt?
kommt drauf an, was du unter 'compilezeit' verstehst

#defines werden vor'm compilieren durch den präprozessor ersetzt. der compiler bekommt die nie zu sehen...
-
Meep Meep schrieb:
eher eine schlechte idee ?
Wenn du das typsicher hinbekommen willst wird dein op| grauenhaft aussehen und dir nicht allzu viel bringen (absolut gesehen und dem Aufwand gegenübergestellt noch weniger), andernfalls gewinnst du nichts sondern verhunzt dir deinen Client-Code mit Milliarden
static_casts... IMAO.Alternative wären evtl Parameter Objekte:
struct Parameter { Parameter() { /* set defaults */ } Parameter& foo(); Parameter& bar( int ); operator int() { /* convert to bitmask */ } }; // ... call_smth(Parameter().foo().bar(42));
-
Hi
(D)Evil schrieb:
Ja ist eine schlechte Idee, da sie nicht sonderlich Sinnvoll ist.
ich gebrauche ne hand voll solcher defines (ca. 20 - 30) relativ oft im code und die sind immer recht lang. jetzt wollte ich sie eben kuerzen. da kam mir dann die idee, das ich diese als enums definiere.
Meep Meep
-
Was spricht gegen
const DWORD myDefine = ...?