c++ - 使用 Pimpl Idiom 的其他原因或目的

标签 c++ design-patterns pimpl-idiom

正如标题所暗示的,我想知道除了减少重建时间之外,PImpl 惯用语还有哪些其他原因、目的或用途。

引用 here 中的示例:

(thread locals need to be behind a pimpl wall; they can't be exported directly

我不明白用户的意思,但我收集到 PImpl 习语还有其他有趣的用途,

最佳答案

摘自 Scott Meyers 的书“Effective C++ Third Edition”(第 31 项)

这种分离的关键是替换对定义的依赖 依赖于声明。这就是最小化的本质 编译依赖:让你的头文件在任何时候都自给自足 它是实用的,如果不实用,则取决于其他声明 文件,而不是定义。

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

关于c++ - 使用 Pimpl Idiom 的其他原因或目的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42410369/

相关文章:

java - 当列表达到一定数量时执行操作

java - 了解适配器设计模式的实用性

c++ - 使用 D_ptr 实现析构函数

类 C 实现的 C++ 等效性能版本

c++ - 如何处理 boost::program_options 中的未经请求的参数

c++ - push_back 到 Vector

c++ - c++ assert() 如何创建无限循环?

C++,是否有可能(以及如何)通过 exec() 运行多 Action 、单行 curl 命令?

node.js - 如何判断异步调用是否是最后一次

c++ - 当全局函数需要指向 impl 的指针时,如何防止 impl 细节出现在头文件中?