Namespaces
Variants

std::shared_ptr<T>:: operator*, std::shared_ptr<T>:: 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)
T & operator * ( ) const noexcept ;
(1) (depuis C++11)
T * operator - > ( ) const noexcept ;
(2) (depuis C++11)

Déréférence le pointeur stocké. Le comportement est indéfini si le pointeur stocké est nul.

Table des matières

Paramètres

(aucun)

Valeur de retour

1) Le résultat de la déréférenciation du pointeur stocké, c'est-à-dire, * get ( ) .
2) Le pointeur stocké, c'est-à-dire, get ( ) .

Remarques

Lorsque T est un type tableau ou (éventuellement qualifié cv) (depuis C++17) void , il n'est pas spécifié si la fonction (1) est déclarée. Si elle est déclarée, il n'est pas spécifié quel est son type de retour, sauf que la déclaration (bien que pas nécessairement la définition) de la fonction doit être bien formée. Cela permet d'instancier std:: shared_ptr < void >

Lorsque T est un type tableau, il n'est pas spécifié si la fonction (2) est déclarée. Si elle est déclarée, il n'est pas spécifié quel est son type de retour, sauf que la déclaration de la fonction doit être bien formée.

(since C++17)

Exemple

#include <iostream>
#include <memory>
struct Foo
{
    Foo(int in) : a(in) {}
    void print() const
    {
        std::cout << "a = " << a << '\n';
    }
    int a;
};
int main()
{
    auto ptr = std::make_shared<Foo>(10);
    ptr->print();
    (*ptr).print();
}

Sortie :

a = 10
a = 10

Voir aussi

retourne le pointeur stocké
(fonction membre publique)