Namespaces
Variants

voidify

From cppreference.net
Memory management library
voidify
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
template < class T >
void * voidify ( T & obj ) noexcept ;
( Nur zur Darstellung* )
(constexpr seit C++17)

Gibt die Adresse von obj zurück (implizit konvertiert zu void * ).

Inhaltsverzeichnis

Parameter

obj - das Objekt, dessen Adresse genommen wird

Rückgabewert

& obj

(bis C++11)

std:: addressof ( obj )

(seit C++11)

Hinweise

Diese ausschließlich erläuternde Funktion wird durch P0896R4 eingeführt. Sie wird verwendet, um die Effekte von uninitialized memory algorithms zu beschreiben, die Objekte in nicht initialisierten Speicherbereichen konstruieren. Der Ergebniszeiger wird als placement-params eines placement new expression verwendet.

Ursprünglich war der Rückgabewert const_cast < void * > ( static_cast < const volatile void * > ( std:: addressof ( obj ) ) ) , was die Const-Korrektheit verletzt. Die expliziten Casts wurden durch die Lösung von LWG Issue 3870 entfernt, und die einzige verbleibende Konvertierung ist die implizite Konvertierung zu void * .

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 3870 C++98 die expliziten Casts brachen Const-Korrektheit entfernte diese Casts

Siehe auch

kopiert eine Reihe von Objekten in einen nicht initialisierten Speicherbereich
(Funktions-Template)
kopiert eine Reihe von Objekten in einen nicht initialisierten Speicherbereich
(Algorithmus-Funktionsobjekt)
kopiert ein Objekt in einen nicht initialisierten Speicherbereich, definiert durch einen Bereich
(Funktions-Template)
kopiert ein Objekt in einen nicht initialisierten Speicherbereich, definiert durch einen Bereich
(Algorithmus-Funktionsobjekt)
verschiebt eine Reihe von Objekten in einen nicht initialisierten Speicherbereich
(Funktions-Template)
verschiebt eine Reihe von Objekten in einen nicht initialisierten Speicherbereich
(Algorithmus-Funktionsobjekt)
konstruiert Objekte durch Default-Initialisierung in einem nicht initialisierten Speicherbereich, definiert durch einen Bereich
(Funktions-Template)
konstruiert Objekte durch Default-Initialisierung in einem nicht initialisierten Speicherbereich, definiert durch einen Bereich
(Algorithmus-Funktionsobjekt)
konstruiert Objekte durch Wert-Initialisierung in einem nicht initialisierten Speicherbereich, definiert durch einen Bereich
(Funktions-Template)
konstruiert Objekte durch Wert-Initialisierung in einem nicht initialisierten Speicherbereich, definiert durch einen Bereich
(Algorithmus-Funktionsobjekt)
erstellt ein Objekt an einer gegebenen Adresse
(Funktions-Template)
erstellt ein Objekt an einer gegebenen Adresse
(Algorithmus-Funktionsobjekt)