voidify
|
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) |
|
|
(C++20)
|
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) |
|
|
(C++20)
|
kopiert ein Objekt in einen nicht initialisierten Speicherbereich, definiert durch einen Bereich
(Algorithmus-Funktionsobjekt) |
|
(C++17)
|
verschiebt eine Reihe von Objekten in einen nicht initialisierten Speicherbereich
(Funktions-Template) |
|
(C++20)
|
verschiebt eine Reihe von Objekten in einen nicht initialisierten Speicherbereich
(Algorithmus-Funktionsobjekt) |
|
(C++17)
|
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) |
|
|
(C++17)
|
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) |
|
|
(C++20)
|
erstellt ein Objekt an einer gegebenen Adresse
(Funktions-Template) |
|
(C++20)
|
erstellt ein Objekt an einer gegebenen Adresse
(Algorithmus-Funktionsobjekt) |