¿Alguien conoce una implementación de shared_ptr
y weak_ptr
junto con un socio de inicialización diferido? Los requisitos de las clases fueron:punteros compartidos, débiles y flojos en C++
Una clase
lazy_ptr
que permite a un cliente para construir el objeto más tarde (en su caso), sin necesidad de la aplicación constructorUna clase
weak_lazy_ptr
que tiene tres estados posibles : todavía no construido (no se bloqueará a unshared_ptr
), construido (se bloqueará a unshared_ptr
) y destruido (no se bloqueará a unshared_ptr
)
I creó algunas clases que no hacían el trabajo por completo hace un tiempo (see CVu article here) que usaban shared_ptr
y weak_ptr
en su implementación. Los principales problemas con un modelo que utiliza punteros compartidos y débiles en lugar de integrar con ellos siguen:
Una vez que todos
lazy_ptr
objetos ir fuera de alcance, las referencias débiles ya no se pueden bloquear, incluso si otros clientes están llevando a caboshared_ptr
versionesConstrucción de objetos en diferentes hilos no se puede controlar
lo agradecería cualquier punteros a otros intentos de reconciliar estos problemas, o a cualquier trabajo i n progreso puede haber en esta área.
Suena casi como 'shared_ptr>', ¿es así? –
GManNickG
@ user1078210 Quizás pueda encontrar más información [aquí] (http: // stackoverflow.com/questions/878166/is-there-c-perezoso-puntero). – ealves
@GMan: 'boost :: optional' * does * permite la construcción diferida, pero' boost :: shared_ptr' también permite eso, por lo que no son necesarios, si es que lo entiendo. –