我不知道这个问题是否适合SO,但我们去了:
启用shared_from_this时,它是否会为可执行文件添加太多大小?是否也需要花费太多时间来解析shared_from_this()调用?
查看文档,enable_shared_from_this是一个只添加两个函数的帮助器,所以我认为它不应该占用太多额外的大小。
编辑此问题的更合适的标题应该是,它添加了多少大小?而不是询问它是否增加了太多的尺寸。
答案 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的指针。