O mandato padrão enable_shared_from_this deve ser herdado publicamente? Por quê?
É comum herdar deenable_shared_from_this
só para poder voltarshared_ptr
das funções-membro como a intenção principal, sem intenção de exporenable_shared_from_this
API na classe derivada.
Desde que fazer uso deenable_shared_from_this
é preciso fazê-lo através da herança pública (o padrão exige isso? qual é a lógica?), isso não pode ser alcançado eenable_shared_from_this
API é forçada a API pública de classe derivada.
Inerenteenable_shared_from_this
em particular e fazendoshared_ptr
uma classe de amigo trabalha com clang junto com libc ++, mas não funciona com stdlibc ++.
Desde aprivate enable_shared_from_this
+ friend shared_ptr
(ou herança protegida) parece cobrir esse caso de uso, não deveria ser suficiente pelo padrão para ser usado como uma solução para o problema "compartilhado a partir deste"?