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_ptr
os 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.