Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用Pimpl Idoim的其他原因或目的_C++_Design Patterns_Pimpl Idiom - Fatal编程技术网

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

C++ 使用Pimpl Idoim的其他原因或目的,c++,design-patterns,pimpl-idiom,C++,Design Patterns,Pimpl Idiom,正如标题所示,我想知道除了减少重建时间之外,PImpl习惯用法还有什么其他原因、目的或用途 举出一个例子: (线程本地人需要在pimpl墙后面;他们 不能直接导出 我不理解用户的意思,但是我想Scott Meyers的“有效C++第三版”(第31条)有关于Piml成语的其他有趣用法,< P>。 “这种分离的关键是替换对定义的依赖关系 依赖于声明。这是最小化的本质 编译依赖项:使头文件在任何时候都是自给自足的 它是实用的,当它不实用时,依赖于其他语言的声明 文件,而不是定义。“ 例如,在这种情况下

正如标题所示,我想知道除了减少重建时间之外,PImpl习惯用法还有什么其他原因、目的或用途

举出一个例子:

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

我不理解用户的意思,但是我想Scott Meyers的“有效C++第三版”(第31条)

有关于Piml成语的其他有趣用法,

< P>。 “这种分离的关键是替换对定义的依赖关系 依赖于声明。这是最小化的本质 编译依赖项:使头文件在任何时候都是自给自足的 它是实用的,当它不实用时,依赖于其他语言的声明 文件,而不是定义。“


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

这意味着声明文件中不应存在线程局部变量,因为这会导致票证中描述的问题。另一个好处是使用PImpl的好处是减少依赖性。@N.Gerontidis您也许可以写一篇关于减少依赖性的评论作为答案,并进一步阐述。