S
Im Standard steht irgendwo, dass alles, was Speicher verbraucht, ein Objekt ist, außer Funktionen.
Ein Objekt ist definiert als
An object is a region of storage. [ Note: A function is not an object, regardless of whether or not it occupies storage in the way that objects do. —end note ]
Da hast du das wohl her. Deine Pauschalaussage ist falsch, denn Referenzen sind auch keine Objekte, mögen sie auch Speicher belegen (oder auch nicht).
Ich glaube aber, das Missverständnis liegt in dem Begriff "Enumerator". Ich und der Standard bezeichnen damit die in einer Enumeration deklarierten Konstanten.
The identifiers in an enumerator-list are declared as constants, and can appear wherever constants are required. An enumerator-definition with = gives the associated enumerator the value indicated by the constant-expression.
Das alles heißt nicht, dass sie Objekte sind, denn Deklarationen oder Definitionen sind nicht an Objekte gebunden. Es sind einfach Konstanten mit einem Typ, einem Namen und einem Wert. Heißt immer noch nicht, dass sie Objekte sind.
Du wirst wohl eher Objekte vom Enumerations-Typ gemeint haben.
enum foo {a, b}; // a und b sind Enumeratoren.
foo bar;// bar ist ein Objekt vom unterliegenden Typ
Manche sind auch schon vorher verrückt, nicht wahr, Sone.
Völlig richtig. Ich verstehe gar nicht, wieso du dass amüsant findest. Das war eigentlich eher als Kompliment gemeint.