lang:cpp:smartptr
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédente | |||
lang:cpp:smartptr [2022/12/28 10:35] – Ajout de "Encapsuler fopen/close" root | lang:cpp:smartptr [2024/01/11 17:00] (Version actuelle) – Ajout de "Différencier empty et expired" root | ||
---|---|---|---|
Ligne 31: | Ligne 31: | ||
Destructor | Destructor | ||
Destructor | Destructor | ||
- | </ | ||
- | |||
- | ====std:: | ||
- | Il faut utiliser le comparateur '' | ||
- | <code cpp> | ||
- | std:: | ||
</ | </ | ||
Ligne 162: | Ligne 156: | ||
[[https:// | [[https:// | ||
+ | |||
+ | ====weak_ptr==== | ||
+ | |||
+ | ====std:: | ||
+ | Il faut utiliser le comparateur '' | ||
+ | <code cpp> | ||
+ | std:: | ||
+ | </ | ||
+ | |||
+ | ===Différencier empty et expired=== | ||
+ | |||
+ | Sans passer par '' | ||
+ | |||
+ | <code cpp> | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | class A {}; | ||
+ | |||
+ | int main() { | ||
+ | { | ||
+ | std:: | ||
+ | |||
+ | if (!aa.owner_before(std:: | ||
+ | std::cout << " | ||
+ | } | ||
+ | if (aa.expired()) { | ||
+ | std::cout << " | ||
+ | } | ||
+ | } | ||
+ | |||
+ | { | ||
+ | std:: | ||
+ | std:: | ||
+ | |||
+ | if (!aa.owner_before(std:: | ||
+ | std::cout << " | ||
+ | } | ||
+ | if (aa.expired()) { | ||
+ | std::cout << " | ||
+ | } | ||
+ | } | ||
+ | |||
+ | { | ||
+ | std:: | ||
+ | { | ||
+ | std:: | ||
+ | aa = a; | ||
+ | |||
+ | if (!aa.owner_before(std:: | ||
+ | std::cout << " | ||
+ | } | ||
+ | if (aa.expired()) { | ||
+ | std::cout << " | ||
+ | } | ||
+ | } | ||
+ | if (!aa.owner_before(std:: | ||
+ | std::cout << " | ||
+ | } | ||
+ | if (aa.expired()) { | ||
+ | std::cout << " | ||
+ | } | ||
+ | } | ||
+ | return 0; | ||
+ | } | ||
+ | </ |
lang/cpp/smartptr.1672220144.txt.gz · Dernière modification : 2022/12/28 10:35 de root