std::unique_ptr::operator<<
De cppreference.com
<tbody>
</tbody>
template <class CharT, class Traits, class Y, class D> std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& os, const std::unique_ptr<Y, D>& p); |
(desde C++20) | |
Inserta el valor del puntero gestionado por p en el flujo de salida os.
Equivalente a os << p.get().
Esta sobrecarga solo participa en la resolución de sobrecargas si os << p.get() es una expresión válida.
Parámetros
| os | - | Un std::basic_ostream en el que insertar p.
|
| p | - | El puntero a ser insertado en os.
|
Valor de retorno
os
Notas
Si std::unique_ptr<Y, D>::pointer es un puntero de tipo carácter (p. ej., cuando Y es char o char[] o CharT), esto puede terminar llamando las sobrecargas de operator<< para cadenas de caracteres terminadas en nulo (causando un comportamiento no definido si el puntero de hecho no apunta a dicha cadena), en lugar de la sobrecarga para imprimir el valor del propio puntero.
Ejemplo
Ejecuta este código
#include <iostream>
#include <memory>
class Foo {};
int main()
{
auto p = std::make_unique<Foo>();
std::cout << p << '\n';
std::cout << p.get() << '\n';
}
Posible salida:
0x6d9028
0x6d9028
Véase también
| Devuelve un puntero al objeto gestionado. (función miembro pública) |