Cplusplus.com shared_ptr
сторінка волає відмінність між порожнім std::shared_ptr
і в нулі shared_ptr
. Сторінка cppreference.com явно не називає відмінності, але використовує як "порожній", так і порівняння для nullptr
опису std::shared_ptr
поведінки.
Чи існує різниця між порожнім і нульовим значенням shared_ptr
? Чи існує варіант використання таких покажчиків із змішаною поведінкою? Чи shared_ptr
має сенс не пуста нуль ? Чи коли-небудь був би випадок у звичайному використанні (тобто, якщо ви не створили його явно), коли ви могли б отримати в результаті порожній, але не нульовий shared_ptr
?
І чи змінюється будь-яка з цих відповідей, якщо ви використовуєте версію Boost замість версії C ++ 11?
shared_ptr
екземпляр із збереженим показником, що не є НУЛЬНИМ." Також варто згадати попередню примітку (p15), "Щоб уникнути можливості звисання вказівника, користувач цього конструктора повинен забезпечити збереженняp
чинності принаймні до тих пір, поки група власника неr
буде знищена." Дійсно рідко використовувана конструкція.