std:: bad_weak_ptr
|
Défini dans l'en-tête
<memory>
|
||
|
class
bad_weak_ptr
;
|
(depuis C++11) | |
std::bad_weak_ptr
est le type de l'objet levé comme exception par les constructeurs de
std::shared_ptr
qui prennent
std::weak_ptr
comme argument, lorsque le
std::weak_ptr
fait référence à un objet déjà supprimé.
Diagramme d'héritage
Table des matières |
Fonctions membres
|
(constructeur)
|
construit un nouvel objet
bad_weak_ptr
(fonction membre publique) |
|
operator=
|
remplace l'objet
bad_weak_ptr
(fonction membre publique) |
|
what
|
retourne la chaîne explicative
(fonction membre publique) |
std::bad_weak_ptr:: bad_weak_ptr
|
bad_weak_ptr
(
)
noexcept
;
|
(1) | (depuis C++11) |
|
bad_weak_ptr
(
const
bad_weak_ptr
&
other
)
noexcept
;
|
(2) | (depuis C++11) |
Construit un nouvel objet
bad_weak_ptr
avec une chaîne d'octets null-terminée définie par l'implémentation, accessible via
what()
.
std::bad_weak_ptr
, alors
std::
strcmp
(
what
(
)
, other.
what
(
)
)
==
0
.
Paramètres
| other | - | un autre objet d'exception à copier |
std::bad_weak_ptr:: operator=
|
bad_weak_ptr
&
operator
=
(
const
bad_weak_ptr
&
other
)
noexcept
;
|
(depuis C++11) | |
Assigne le contenu avec celui de
other
. Si
*
this
et
other
ont tous deux le type dynamique
std::bad_weak_ptr
alors
std::
strcmp
(
what
(
)
, other.
what
(
)
)
==
0
après l'assignation.
Paramètres
| other | - | autre objet d'exception à assigner |
Valeur de retour
* this
std::bad_weak_ptr:: what
|
virtual
const
char
*
what
(
)
const
noexcept
;
|
(depuis C++11) | |
Retourne la chaîne explicative.
Valeur de retour
Pointeur vers une chaîne terminée par un caractère nul, définie par l'implémentation, contenant des informations explicatives. La chaîne est adaptée à la conversion et à l'affichage en tant que std::wstring . Le pointeur est garanti valide au moins jusqu'à la destruction de l'objet exception duquel il est obtenu, ou jusqu'à l'appel d'une fonction membre non constante (par exemple, l'opérateur d'affectation par copie) sur l'objet exception.
Notes
Les implémentations sont autorisées mais non obligées de redéfinir
what()
.
Hérité de std:: exception
Fonctions membres
|
[virtual]
|
détruit l'objet exception
(fonction membre publique virtuelle de
std::exception
)
|
|
[virtual]
|
retourne une chaîne explicative
(fonction membre publique virtuelle de
std::exception
)
|
Exemple
#include <iostream> #include <memory> int main() { std::shared_ptr<int> p1(new int(42)); std::weak_ptr<int> wp(p1); p1.reset(); try { std::shared_ptr<int> p2(wp); } catch (const std::bad_weak_ptr& e) { std::cout << e.what() << '\n'; } }
Sortie possible :
std::bad_weak_ptr
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement tel que publié | Comportement correct |
|---|---|---|---|
| LWG 2376 | C++11 |
l'appel à
what
sur un
bad_weak_ptr
construit par défaut devait retourner
"bad_weak_ptr"
|
la valeur de retour est définie par l'implémentation |
Voir aussi
|
(C++11)
|
pointeur intelligent avec sémantique de propriété partagée d'objet
(modèle de classe) |
|
(C++11)
|
référence faible vers un objet géré par
std::shared_ptr
(modèle de classe) |