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 ;
( exposition uniquement* )
(constexpr depuis C++17)

Renvoie l'adresse de obj (converti implicitement en void * ).

Table des matières

Paramètres

obj - l'objet dont l'adresse sera prise

Valeur de retour

& obj

(jusqu'à C++11)

std:: addressof ( obj )

(depuis C++11)

Notes

Cette fonction d'exposition uniquement est introduite par P0896R4 . Elle est utilisée pour décrire les effets des algorithmes de mémoire non initialisée qui construisent des objets dans des zones de mémoire non initialisées. Le pointeur résultat est utilisé comme placement-params d'une expression de placement new .

Initialement, la valeur de retour était const_cast < void * > ( static_cast < const volatile void * > ( std:: addressof ( obj ) ) ) , ce qui rompt la const-correctness. Les casts explicites ont été supprimés par la résolution de LWG issue 3870 , et la seule conversion restante est la conversion implicite en void * .

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
LWG 3870 C++98 les conversions explicites violaient la const-correctness supprimé ces conversions

Voir aussi

copie une plage d'objets vers une zone de mémoire non initialisée
(modèle de fonction)
copie une plage d'objets vers une zone de mémoire non initialisée
(objet fonction algorithme)
copie un objet vers une zone de mémoire non initialisée, définie par une plage
(modèle de fonction)
copie un objet vers une zone de mémoire non initialisée, définie par une plage
(objet fonction algorithme)
déplace une plage d'objets vers une zone de mémoire non initialisée
(modèle de fonction)
déplace une plage d'objets vers une zone de mémoire non initialisée
(objet fonction algorithme)
construit des objets par initialisation par défaut dans une zone de mémoire non initialisée, définie par une plage
(modèle de fonction)
construit des objets par initialisation par défaut dans une zone de mémoire non initialisée, définie par une plage
(objet fonction algorithme)
construit des objets par initialisation par valeur dans une zone de mémoire non initialisée, définie par une plage
(modèle de fonction)
construit des objets par initialisation par valeur dans une zone de mémoire non initialisée, définie par une plage
(objet fonction algorithme)
crée un objet à une adresse donnée
(modèle de fonction)
crée un objet à une adresse donnée
(objet fonction algorithme)