Namespaces
Variants

voidify

De fr.cppreference.net
 
 
Bibliothèque d'algorithmes
Algorithmes contraints et algorithmes sur les plages (C++20)
Algorithmes contraints, par ex. ranges::copy, ranges::sort, ...
Opérations de séquence non modificatrices    
Opérations par lot
(C++17)
Opérations de recherche
Opérations de séquence modificatrices
Opérations de copie
(C++11)
(C++11)
Opérations d'échange
Opérations de transformation
Opérations de génération
Opérations de suppression
Opérations de changement d'ordre
(jusqu'à C++17)(C++11)
(C++20)(C++20)
Opérations d'échantillonnage
(C++17)

Opérations de tri et connexes
Opérations de partitionnement
(C++11)    

Opérations de tri
Opérations de recherche binaire
(sur des plages partitionnées)
Opérations d'ensemble (sur des plages triées)
Opérations de fusion (sur des plages triées)
Opérations de tas
Opérations de minimum/maximum
(C++11)
(C++17)
Opérations de comparaison lexicographique
Opérations de permutation


 
 
template< class T >
void* /*voidify*/( T& obj ) noexcept;
(à titre d'exposition uniquement*)
(constexpr depuis C++17)

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

Paramètres

obj - l'objet dont l'adresse sera prise

Valeur de retour

& obj

(jusqu'à C++11)

std:: addressof ( obj )

(depuis C++11)

Remarques

Ce modèle de fonction d'exposition uniquement est introduit par P0896R4. Il est utilisé pour décrire les effets des algorithmes <memory> spécialisés. Le pointeur résultat est utilisé comme les placement-params d'une expressionnew de placement.

Initialement, la valeur de retour était const_cast<void*>(static_cast<const volatile void*>(std::addressof(obj))), ce qui brise la const-correctness. Les conversions explicites ont été supprimées par la résolution de LWG issue 3870, et la seule conversion restante est la conversion implicite vers 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

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