boost_shared_from_this功能是否会为二进制文件添加太多大小?

时间:2013-03-06 13:15:20

标签: c++ boost

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

启用shared_from_this时,它是否会为可执行文件添加太多大小?是否也需要花费太多时间来解析shared_from_this()调用?

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

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

2 个答案:

答案 0 :(得分:4)

  

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

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

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

  

是否也需要花费太多时间来解析shared_from_this()调用?

您应该期望从shared_ptr构建weak_ptr所需的时间。

答案 1 :(得分:2)

你可以看一下boost源文件。它只向你的类添加mutable weak_ptr<T> weak_this_;,它本身只包含指向实例的指针和指向refcounter的指针。