[Dune] enum vs. static const

Oliver Sander sander at math.fu-berlin.de
Tue Nov 18 15:33:59 CET 2003


Hallo Leute!
Nebenan am ZIB gibt es einen großen Template-Guru namens
Werner Benger.  Dem habe ich mal unsere Frage gestellt.
Hier seine Antwort:


Hallo Oliver,

 also eigentlich ist die Antwort eindeutig:

enum's sind vorzuziehen, weil das echte Compiler-Konstanten sind,
die waehrend der Compile-Zeit eingesetzt werden.
Bei "static const" *kann* der Compiler das zwar tun, bzw. sollte er,
muss er aber nicht. Ebenso Speicherplatzbelegung, das ist kein Muss.
Der Compiler darf die Variable wegoptimieren, muss er aber nicht.

Dass enum's Konstanten sind, ist da eher Gewoehnungsfrage, insofern
ist die Lesbarkeit kein dringendes Kriterium. Enum's haben zudem
den Vorteil der Typsicherheit, wenn man das brauchen sollte.

Was dagegen spricht sind Spezialfaelle: wenn man zB. die Adresse
einer Konstanten braucht, geht das ueber enum's nicht.

Auch kann man keine floating point enum's machen, oder Strukturen
als enum's.





More information about the Dune mailing list