std::unique_ptr<T,Deleter>:: operator<<
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Modifiers | ||||
| Observers | ||||
| Non-member functions | ||||
|
(C++14)
(C++20)
|
||||
|
(until C++20)
(C++20)
|
||||
|
operator<<
(C++20)
|
||||
| Helper classes | ||||
|
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 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) |