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 ) ;
(depuis C++20)

Insère la valeur du pointeur géré par p dans le flux de sortie os .

Équivalent à os << p. get ( ) .

Cette surcharge participe à la résolution de surcharge uniquement si os << p. get ( ) est une expression valide.

Table des matières

Paramètres

os - un std::basic_ostream dans lequel insérer p
p - le pointeur à insérer dans os

Valeur de retour

os

Notes

Si std:: unique_ptr < Y, D > :: pointer est un pointeur vers un type caractère (par exemple, lorsque Y est char ( [ ] ) ou CharT ( [ ] )), cela peut entraîner l'appel des surcharges de operator<< pour les chaînes de caractères terminées par un caractère nul (provoquant un comportement indéfini si le pointeur ne pointe pas en réalité vers une telle chaîne), plutôt que la surcharge pour afficher la valeur du pointeur lui-même .

Exemple

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

Sortie possible :

0x6d9028
0x6d9028

Voir aussi

renvoie un pointeur vers l'objet géré
(fonction membre publique)