voidify
template< class T >
void* /*voidify*/( T& obj ) noexcept;
|
(solo para exposición*) (constexpr desde C++17) |
|
Retorna la dirección de obj (convertido implícitamente a void*).
Parámetros
| obj | - | el objeto cuya dirección será tomada |
Valor de retorno
|
& obj |
(hasta C++11) |
|
std:: addressof ( obj ) |
(desde C++11) |
Notas
Esta plantilla de función solo de exposición es introducida por P0896R4. Se usa para describir los efectos de algoritmos <memory>especializados. El puntero de resultado se utiliza como los placement-params de una expresión de newcolocación.
Inicialmente, el valor de retorno era const_cast<void*>(static_cast<const volatile void*>(std::addressof(obj))), lo que rompe la corrección de const. Los casts explícitos fueron eliminados por la resolución de LWG issue 3870, y la única conversión restante es la conversión implícita a void*.
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 3870 | C++98 | los casts explícitos rompían la corrección de const | se eliminaron estos casts |
Véase también
(C++20) |
crea un objeto en una dirección dada (plantilla de función & objeto función de algoritmo) |
(C++20) |
|
| copia un rango de objetos a un área de memoria no inicializada (plantilla de función & objeto función de algoritmo) | |
(C++20) |
|
(C++11) |
copia un número de objetos a un área de memoria no inicializada (plantilla de función & objeto función de algoritmo) |
(C++20) |
|
| copia un objeto a un área de memoria no inicializada, definida por un rango (plantilla de función & objeto función de algoritmo) | |
(C++20) |
|
| copia un objeto a un área de memoria no inicializada, definida por un inicio y un conteo (plantilla de función & objeto función de algoritmo) | |
(C++20) |
|
(C++17) |
mueve un rango de objetos a un área de memoria no inicializada (plantilla de función & objeto función de algoritmo) |
(C++20) |
|
(C++17) |
mueve un número de objetos a un área de memoria no inicializada (plantilla de función & objeto función de algoritmo) |
(C++20) |
| construye objetos mediante inicialización por defecto en un área de memoria no inicializada, definida por un rango (plantilla de función & objeto función de algoritmo) | |
| construye objetos mediante inicialización por defecto en un área de memoria no inicializada, definida por un inicio y un conteo (plantilla de función & objeto función de algoritmo) | |
| construye objetos mediante inicialización por valor en un área de memoria no inicializada, definida por un rango (plantilla de función & objeto función de algoritmo) | |
| construye objetos mediante inicialización por valor en un área de memoria no inicializada, definida por un inicio y un conteo (plantilla de función & objeto función de algoritmo) | |