Alot Templat-Code wie folgt aussieht:Nameless Aufzählungen in Vorlagen
template <typename T>
class foo
{
enum { value = <some expr with T> };
};
Ein Beispiel kann here im Prime Prüfprogramm zu sehen und ich habe es in einer Factorial Implementierung einmal zu sehen.
Meine Frage ist, warum eine namenlose enum verwenden? Gibt es einen besonderen Grund dafür? Ein statischer const int könnte zum Beispiel auch funktionieren?
edit:
@ Benoît: Danke für den Link, sofern es die Einsicht, die ich suchte!
@underscore_d kannst du mir irgendein Beispiel geben, das untersuchen kann, wie enum und const unterschiedlich groß sind? – UnKnown
Ich hätte gesagt, 'const [expr]' Mitglieder würden 'sizeof (Obj)' erhöhen, speziell "statische", aber im Rückblick denke ich, dass ich ein Idiot bin. Ich hätte sagen sollen ''statische const [expr]' - Variablen werden wahrscheinlich Platz im ausführbaren Image und möglicherweise RAM' zugewiesen, aber nicht pro Instanz - aus einem offensichtlichen Grund: sie sind statisch. Jetzt bin ich unterwegs, um zu testen, ob triviale 'statische const [expr]' -Konstanten vom Compiler inline geschrieben werden, wie 'Enum's. –