Namespaces
Variants

std::unique_ptr<T,Deleter>:: operator<<

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
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 participa en la resolución de sobrecarga solo si os << p. get ( ) es una expresión válida.

Contenidos

Parámetros

os - un std::basic_ostream donde insertar p
p - el puntero a insertar en os

Valor de retorno

os

Notas

Si std:: unique_ptr < Y, D > :: pointer es un puntero a un tipo carácter (por ejemplo, cuando Y es char ( [ ] ) o CharT ( [ ] )), esto podría terminar llamando a las sobrecargas de operator<< para cadenas de caracteres terminadas en nulo (causando comportamiento indefinido si el puntero no apunta realmente a dicha cadena), en lugar de la sobrecarga para imprimir el valor del puntero mismo .

Ejemplo

#include <iostream>
#include <memory>
class Foo {};
int main()
{
    auto p = std::make_unique<Foo>();
    std::cout << p << '\n';
    std::cout << p.get() << '\n';
}

Salida posible:

0x6d9028
0x6d9028

Véase también

devuelve un puntero al objeto gestionado
(función miembro pública)