Namespaces
Variants

voidify

Von de.cppreference.net
 
 
Algorithmenbibliothek
Eingeschränkte Algorithmen und Algorithmen auf Bereichen (C++20)
Eingeschränkte Algorithmen, z.B. ranges::copy, ranges::sort, ...
Nicht modifizierende Sequenzoperationen    
Stapeloperationen
(C++17)
Suchoperationen
Modifizierende Sequenzoperationen
Kopieroperationen
(C++11)
(C++11)
Swap-Operationen
Transformationsoperationen
Generierungsoperationen
Entfernungsoperationen
Reihenfolgeändernde Operationen
(bis C++17)(C++11)
(C++20)(C++20)
Stichprobenoperationen
(C++17)

Sortier- und verwandte Operationen
Partitionierungsoperationen
(C++11)    

Sortieroperationen
Binäre Suchoperationen
(auf partitionierten Bereichen)
Mengenoperationen (auf sortierten Bereichen)
Merge-Operationen (auf sortierten Bereichen)
Heap-Operationen
Minimum/Maximum-Operationen
(C++11)
(C++17)
Lexikografische Vergleichsoperationen
Permutationsoperationen


 
 
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

erzeugt ein Objekt an einer gegebenen Adresse
(Funktionstemplate & Algorithmus-Funktionsobjekt)
kopiert einen Bereich von Objekten in einen nicht initialisierten Speicherbereich
(Funktionstemplate & Algorithmus-Funktionsobjekt)
kopiert eine Anzahl von Objekten in einen nicht initialisierten Speicherbereich
(Funktionstemplate & Algorithmus-Funktionsobjekt)
kopiert ein Objekt in einen nicht initialisierten Speicherbereich, definiert durch einen Bereich
(Funktionstemplate & Algorithmus-Funktionsobjekt)
kopiert ein Objekt in einen nicht initialisierten Speicherbereich, definiert durch einen Start und eine Anzahl
(Funktionstemplate & Algorithmus-Funktionsobjekt)
verschiebt einen Bereich von Objekten in einen nicht initialisierten Speicherbereich
(Funktionstemplate & Algorithmus-Funktionsobjekt)
verschiebt eine Anzahl von Objekten in einen nicht initialisierten Speicherbereich
(Funktionstemplate & Algorithmus-Funktionsobjekt)
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)