общие, слабые и ленивые указатели в C ++
Кто-нибудь знает о реализацииshared_ptr
а такжеweak_ptr
вместе с ленивым партнером инициализации? Требования классов были:
A lazy_ptr
класс, который позволяет клиенту построить объект позже (если вообще), без необходимости реализации конструктора
A weak_lazy_ptr
класс с тремя возможными состояниями: еще не создан (не будет привязан кshared_ptr
), построенный (будетshared_ptr
) и уничтожен (не будет привязан кshared_ptr
)
Я создал несколько классов, которые не делали работу совсем недавно (см. статью CVU здесь) который использовалshared_ptr
а такжеweak_ptr
в их реализации. Основные проблемы с моделью, которую использует USES, и слабые указатели вместо интеграции с ними:
Раз всеlazy_ptr
объекты выходят из области видимости, любые слабые ссылки больше не могут быть заблокированы, даже если другие клиенты удерживаютshared_ptr
версии
Строительство объектов на разных нитях не поддается контролю
Я был бы признателен за любые указания на другие попытки примирить эти проблемы, или на любую работу, которая ведется в этой области.