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*).
Parameter
| obj | - | das Objekt, dessen Adresse genommen wird |
Rückgabewert
|
& obj |
(bis C++11) |
|
std:: addressof ( obj ) |
(seit C++11) |
Anmerkungen
Diese nur zur Darstellung dienende Funktionsschablone wurde mit P0896R4 eingeführt. Sie wird verwendet, um die Auswirkungen von spezialisierten <memory> Algorithmen zu beschreiben. Der Ergebniszeiger wird als Platzierungsparameter eines Platzierungs- new Ausdrucks verwendet.
Ursprünglich war der Rückgabewert const_cast<void*>(static_cast<const volatile void*>(std::addressof(obj))), was die Konstkorrektheit verletzte. 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
(C++20) |
erzeugt ein Objekt an einer gegebenen Adresse (Funktionstemplate & Algorithmus-Funktionsobjekt) |
(C++20) |
|
| kopiert einen Bereich von Objekten in einen nicht initialisierten Speicherbereich (Funktionstemplate & Algorithmus-Funktionsobjekt) | |
(C++20) |
|
(C++11) |
kopiert eine Anzahl von Objekten in einen nicht initialisierten Speicherbereich (Funktionstemplate & Algorithmus-Funktionsobjekt) |
(C++20) |
|
| kopiert ein Objekt in einen nicht initialisierten Speicherbereich, definiert durch einen Bereich (Funktionstemplate & Algorithmus-Funktionsobjekt) | |
(C++20) |
|
| kopiert ein Objekt in einen nicht initialisierten Speicherbereich, definiert durch einen Start und eine Anzahl (Funktionstemplate & Algorithmus-Funktionsobjekt) | |
(C++20) |
|
(C++17) |
verschiebt einen Bereich von Objekten in einen nicht initialisierten Speicherbereich (Funktionstemplate & Algorithmus-Funktionsobjekt) |
(C++20) |
|
(C++17) |
verschiebt eine Anzahl von Objekten in einen nicht initialisierten Speicherbereich (Funktionstemplate & Algorithmus-Funktionsobjekt) |
(C++20) |
| erzeugt Objekte durch Default-Initialisierung in einem nicht initialisierten Speicherbereich, definiert durch einen Bereich (Funktionstemplate & Algorithmus-Funktionsobjekt) | |
| erzeugt Objekte durch Default-Initialisierung in einem nicht initialisierten Speicherbereich, definiert durch einen Start und eine Anzahl (Funktionstemplate & Algorithmus-Funktionsobjekt) | |
| erzeugt Objekte durch Wertinitialisierung in einem nicht initialisierten Speicherbereich, definiert durch einen Bereich (Funktionstemplate & Algorithmus-Funktionsobjekt) | |
| erzeugt Objekte durch Wertinitialisierung in einem nicht initialisierten Speicherbereich, definiert durch einen Start und eine Anzahl (Funktionstemplate & Algorithmus-Funktionsobjekt) | |