ponteiros compartilhados, fracos e preguiçosos em C ++

Alguém está ciente de uma implementação deshared_ptr eweak_ptr junto com um parceiro de inicialização lento? Os requisitos das classes eram:

A lazy_ptr classe que permite que um cliente construa o objeto posteriormente (se houver), sem precisar da implementação do construto

A weak_lazy_ptr classe que possui três estados possíveis: ainda não construído (não será bloqueado para umshared_ptr), construído (será bloqueado para umshared_ptr) e destruído (não será bloqueado para umshared_ptr)

Criei algumas classes que não faziam o trabalho completamente há um tempo atrás eja o artigo CVu aqui) que usaramshared_ptr eweak_ptr em sua implementação. Os principais problemas de um modelo que usa ponteiros compartilhados e fracos em vez de se integrar a eles são os seguintes:

Uma vez que todoslazy_ptrbjetos fora do escopo, quaisquer referências fracas não podem mais ser bloqueadas, mesmo se outros clientes estiverem mantendoshared_ptr versões

A construção de objetos em diferentes threads não pode ser controlada

Agradeço qualquer indicação de outras tentativas de conciliar esses problemas ou de qualquer trabalho em andamento que possa haver nessa áre

questionAnswers(1)

yourAnswerToTheQuestion