std::unique_ptr::operator<<
De cppreference.com
< cpp | memory | unique ptr
template <class CharT, class Traits, class Y, class D> std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& os, |
(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.
Contenido |
[editar] Parámetros
os | - | Un std::basic_ostream en el que insertar p .
|
p | - | El puntero a ser insertado en os .
|
[editar] Valor de retorno
os
[editar] 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.
[editar] 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
[editar] Véase también
Devuelve un puntero al objeto gestionado. (función miembro pública) |