1

我不知道这个问题是否适合 SO,但我们开始了:

启用 shared_from_this 时,是否会为可执行文件增加太多大小?解决 shared_from_this() 调用是否也需要太多时间?

环顾文档, enable_shared_from_this 是一个只添加两个函数的助手,所以我认为它不应该占用太多额外的大小。

编辑这个问题的更合适的标题应该是,它增加了多少尺寸?而不是询问它是否增加了太多的尺寸。

4

2 回答 2

4

启用 shared_from_this 时,是否会为可执行文件增加太多大小?

运行时,它会将 a 的大小添加weak_ptr到每个实例化对象中,在当前版本的 boost 中,它是2 个指针的大小。

至于可执行二进制文件本身,很难预测更改源代码将如何影响该文件的大小。

解决 shared_from_this() 调用是否也需要太多时间?

您应该预计shared_ptr从 a构造 a 所需的时间weak_ptr

于 2013-03-06T13:21:24.070 回答
2

您可以查看 boost 源文件。它仅添加mutable weak_ptr<T> weak_this_;到您的类中,该类本身仅包含指向实例的指针和指向 refcounter 的指针。

于 2013-03-06T13:21:16.297 回答