voidify
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
(C++20) |
crée un objet à une adresse donnée (modèle de fonction & objet fonction d'algorithme) |
(C++20) |
|
| copie une plage d'objets dans une zone mémoire non initialisée (modèle de fonction & objet fonction d'algorithme) | |
(C++20) |
|
(C++11) |
copie un nombre d'objets dans une zone mémoire non initialisée (modèle de fonction & objet fonction d'algorithme) |
(C++20) |
|
| copie un objet dans une zone mémoire non initialisée, définie par une plage (modèle de fonction & objet fonction d'algorithme) | |
(C++20) |
|
| 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) | |
(C++20) |
|
(C++17) |
déplace une plage d'objets dans une zone mémoire non initialisée (modèle de fonction & objet fonction d'algorithme) |
(C++20) |
|
(C++17) |
déplace un nombre d'objets dans une zone mémoire non initialisée (modèle de fonction & objet fonction d'algorithme) |
(C++20) |
| 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) | |