punteros compartidos, débiles y perezosos en C ++

¿Alguien sabe de una implementación deshared_ptr yweak_ptr junto con un compañero de inicialización perezosa? Los requisitos de las clases fueron:

A lazy_ptr clase que permite a un cliente construir el objeto más tarde (si es que lo hace), sin necesidad de la implementación del constructor

A weak_lazy_ptr clase que tiene tres estados posibles: aún no construido (no se bloqueará a unshared_ptr), construido (se bloqueará a unashared_ptr) y destruido (no se bloqueará a unashared_ptr)

Creé algunas clases que no hicieron el trabajo completamente hace un tiempo ver el artículo de CVu aquí) que usabashared_ptr yweak_ptr en su implementación. Los principales problemas con un modelo que USA punteros compartidos y débiles en lugar de integrarse con ellos son los siguientes:

Una vez que todoslazy_ptros objetos @ quedan fuera de alcance, las referencias débiles ya no se pueden bloquear, incluso si otros clientes mantienenshared_ptr versiones

La construcción de objetos en diferentes hilos no se puede controlar

Agradecería cualquier sugerencia sobre otros intentos de conciliar estos problemas, o sobre cualquier trabajo en progreso que pueda haber en esta área.

Respuestas a la pregunta(2)

Su respuesta a la pregunta