k
hat statische Speicherdauer und statische Objekte sind Null initialisiert, können wir dies sehen durch 3.6.2
zum draft C++ standard Abschnitt gehen Initialisierung nicht lokalen Variablen Absatz :
Variables mit statischen Speicherdauer (3.7.1) oder Fadenspeicher Dauer (3.7.2) beträgt Null initialisiert (8,5) vor jedem anderen Initialisierung findet statt. [...]
für skalare Typen, die bedeutet Initialisierung auf Null, der Abschnitt bedeckt ist 8.5
Absatz die sagt:
auf Null initialisieren, ein Objekt oder Referenz vom Typ T Mittel :
und umfasst die folgenden Aufzählungs:
wenn T einen skalaren Typ (3,9) ist, wird das Objekt auf den Wert initialisiert erhalten, indem die Ganzzahlliteral 0 (Null) bis T umwandelt; 105
wissen wir eine ENUM eine skalare Typ aus dem Abschnitt ist 3.9
Typen Absatz die sagt:
Arithmetik-Typen (3.9.1), Aufzählungstypen, Zeigertypen, Zeiger auf Elementtypen (3.9.2), std :: nullptr_- t, und cv -qualifizierte Versionen von diese Typen (3.9.3) sind zusammen skalare Typen genannt. [...]
zero
ist ein gültiger Wert, da der zugrunde liegende Typ sein Wert und Abschnitt 7.2
Enumeration Erklärungen Absatz sagt enthalten kann, dass eine Aufzählung einen Wert annehmen kann nicht definiert durch seine Enumeratoren:
[...]] Es ist möglich, eine Enumeration zu definieren, deren Werte nicht von einem ihrer Enumeratoren definiert sind. [...]
@JohnnyMopp Nein, das ist kein Duplikat. Die Verknüpfung, die Sie verknüpft haben, fragt nach einer Funktionskopie ohne Aufzählung. In diesem Fall handelt es sich um eine Namespace-Scope-Bereichsaufzählung. * Sehr * verschiedene Dinge. – Angew
ist es ein Duplikat. Sie können die Antwort für Ihre Frage in der Antwort für das Duplikat finden, das oben verbunden ist – glezmen
@gglezmen Ich denke immer noch nicht - dass andere Frage nicht die aufgezählten Aufzählungen bedeckt. Ja, die Antwort ist die gleiche, aber das ist keine doppelte Frage. – Angew