@Finnegan Keine Ahnung was dieser Kasper da schon wieder faselt. Ich glaube er hat den Begriff "Allokation" mit "Konstruktion" verwechselt oder so. Um sich wichtig zu machen. Keine Ahnung.
Es gibt nur eine solche Phase im Bezug auf die Lebenszeit eines Objekts, und das ist die Initialisierung (die im Standardjargon weitgehend synonym zu Konstruktion ist). Dass Initialisierung eben manchmal ausbleibt, also ein Objekt vacuous initialized ist, ist zwar terminologisch ungluecklich, aber hat nichts mit 'construction' zu tun (was ein Begriff ist, der sich auf die Phase der Ausfuehrung aller Konstruktoren, member initializer etc. eines Klassenobjekts bezieht).
Ein int value; ist konstruiert, aber nicht initialisiert,
Formell: ein int value ist default-initialized, was also keine eigentliche Initialisierung ist (weil nix passiert), was ergo vacuous initialization ist. Was aber insbesondere wichtig ist, ist die Tatsache, dass das Objekt am leben ist, und dass ein Zugriff wohldefiniert (auch wenn fehlerhaft) ist.
Es ist aber sowohl umgangssprachlich als auch normativ korrekt zu sagen: i ist nicht initialisiert.
Da macht das dann mit dem RAII auch Sinn. Ich glaube aber dennoch, das ist zumindest aus Perspektive des Standards nicht ganz korrekt - auch wenn ich deine Definition für den praktischen Einsatz durchaus als sinnvoll erachte.
Der Standard redet einerseits von Initialization, und andererseits von bestimmten definierten Begriffen wie "vacuous initialization" und "default-initialization" etc. der Begriff "Initialisierung" an sich ueberlappt sich durchaus mit dem gemeinen Gebrauch.
Die Designphilosophie RAII versucht gerade wann immer möglich diese beiden Phasen zusammen zu legen.
Bist jetzt auch noch Philosoph, ey?