ponteiros inteligentes + “isso” considerado prejudicial?

Em um projeto C ++ que usa ponteiros inteligentes, comoboost::shared_ptr, qual é uma boa filosofia de design em relação ao uso de "this"?

Considere isso:

É perigoso armazenar o ponteiro bruto contido em qualquer ponteiro inteligente para uso posterior. Você desistiu do controle da exclusão de objetos e confia no ponteiro inteligente para fazê-lo no momento certo.

Membros de classe não estáticos usam intrinsecamente umthis ponteiro. É um ponteiro bruto e não pode ser alterado.

Se eu alguma vez guardarthis em outra variável ou passá-lo para outra função que poderia armazená-lo posteriormente ou vinculá-lo em um retorno de chamada, estou criando bugs que são introduzidos quando alguém decide fazer um ponteiro compartilhado para minha classe.

Dado que, quando é que é apropriado usar explicitamente umthis ponteiro? Existem paradigmas de design que podem evitar bugs relacionados a isso?

questionAnswers(8)

yourAnswerToTheQuestion