将unique_ptr映射到shared_ptr设计

问题描述

我的主应用程序中有一个unique_ptr(它为其他应用程序提供一些服务)。 现在,我想将这个unique_ptr实例共享给需要主应用程序提供服务的多个应用程序。

主应用程序将是那个unique_ptr对象的所有者。

例如,我的unique_ptr对象可能具有一组Qt信号,其他应用程序将监听这些信号以进行服务。

enter image description here

现在我正在从unique_ptr获取原始指针并将其返回给其他应用程序,但是如果某些应用程序删除该原始指针会发生什么?

我应该将我的unique_ptr更改为shared_ptr,然后将weak_ptr赋予其他应用程序吗?

解决方法

如果您没有生存期问题,那么就没有必要切换为使用with tf.device('/gpu:0')而不是shared_ptr

关于接口中的原始指针,我同意这可能会产生误导。 也许使用引用就足够了,或者使用不透明的结构包裹引用并从外部提供更好的界面。