Мы так C++ 11 наделена довольно полный набор типов смарт-указатель:Практический код-дружественное имя для не владеющих смарт-указатель
- станд :: shared_ptr
- станд :: weak_ptr
- станд :: unique_ptr
- станд :: auto_ptr (устаревшее)
Но отсутствует смарт-указатель без собственности, интегрированный ти выше.
Это, по-видимому, приводит обсуждения разработчиков к довольно разрозненной классификации, которая обычно имеет такие фразы, как «это не-владеющий смарт-указатель». Но это нехорошее имя, которое я хочу использовать для обозначения шаблона-указателя-обертки в моем коде.
Есть ли какие-либо предложения относительно лучшего кода для не-владеющего смарт-указателя?
template<typename T>
struct NonOwningSmart_pointer;
Существует std :: weak_ptr, который на самом деле не заполняет требования, так как для этого требуется shared_ptr.
Обновление: основное преимущество присвоения имени этого интеллектуального указателя однозначно - это ясность кода, построение до nullptr и хорошая игра с другими типами указателей std.
Как слабый указатель отличается от этого «NonOwningSmart_pointer»? –
std :: weak_ptr всегда ассоциируется с std :: shared_ptr, как я понимаю. Но есть std :: unique_ptr, а также raw. – Jojje
Зачем вам в первую очередь нужен не-владеющий умный указатель? Какая польза от простого указателя? – SergeyA