Если вы не хотите, чтобы mySingletonInstance->somePointer
уважал семантику владения shared_ptr
, тогда:
class MySingletonClass {
SomeType* somePointer;
}
shared_ptr<SomeType> myShared_ptr;
...
// Then either of the following lines:
mySingletonInstance->somePointer = mySharedPtr.get();
mySingletonInstance->somePointer = &*mySharedPtr;
Но будьте осторожны - ваш somePointer
может содержать указатель на объект даже после того, как он был удален.