使用Pimpl Idoim的其他原因或目的

时间:2017-02-23 08:19:38

标签: c++ design-patterns pimpl-idiom

正如标题所暗示的那样,我想知道除了减少重建时间之外,还有其他原因,目的或用途,而不是减少重建时间。

here引用示例:

  

(线程本地人需要在pimpl墙后面;他们   无法直接导出

我不明白用户意味着什么,但我认为其他有趣的用于PImpl习语,

1 个答案:

答案 0 :(得分:4)

从书" Effective C ++ Third Edition "作者:Scott Meyers(议题31)

" 这种分离的关键是替换定义的依赖关系 依赖于声明。这是最小化的本质 编译依赖关系:随时使您的头文件自给自足 它是实用的,当它不是时,取决于其他的声明 文件,而不是定义。"

例如,在这种情况下,将线程局部变量移动到定义文件有一个较少的编译依赖项,因为thread_local.hpp未包含在声明文件中。