什么是"细节"和"impl"文件夹?

Tod*_*odd 3 c++ boost stl

当搞乱STL和提升时,我不断看到名为"detail"或"impl"的文件夹.这些文件夹的目的是什么?你怎么知道这里有什么?

这些只是接口的私有实现吗?

cdh*_*wie 7

这些文件夹的目的是什么?

这些只是接口的私有实现吗?

基本上,是的.这就是Boost和标准库的实现通常放置的东西,它们不是它们公开的公共接口的一部分,但需要通过公共接口的实现来访问.

你怎么知道这里有什么?

这是一个难以回答的问题,因为它意味着你可以从外面看到,可以得出这些目录中的东西应该在哪里.您应该将这些目录视为"内部没有用户可维修部件"的模拟.你可以查看并浏览,但你永远不知道你会发现什么,它甚至可以在Boost版本或你的C++环境之间改变.

在这些目录中直接在应用程序中使用头文件是非常气馁,并会导致不可移植的代码,可以通过甚至轻微的升级突破,以提高或C++编译器.

话虽如此,没有理由你不能在这些目录中探索,看看它们是如何工作的!