2014-03-27 79 views
5

我一直在追踪C++标准化,并且遇到了C++模块的想法。我找不到一篇好文章。究竟是什么?C++模块究竟是什么?

+0

可以粘贴链接,你碰到它,那么也许人们可以关联。 –

+0

@pranitkothari最近提到[这里](http://meetingcpp.com/index.php/br/items/cpp-status.html) –

+1

http://stackoverflow.com/questions/3596147/modules-in- c11 – Erbureth

回答

3
+1

我刚刚发布上面的铛链接。那篇文章确实将模块的概念以简单易懂的格式带给了大众。 +1! –

+1

感谢您发布您的答案!请注意,您应该在此处发布答案的重要部分,在此网站上,或者您的帖子风险被删除[请参阅常见问题,其中提到的答案几乎不超过链接。](http:// stackoverflow。 com/faq#deletion)如果您愿意,您可能仍然包含该链接,但仅作为“参考”。答案应该独立,不需要链接。 – Taryn

2

C++模块是提议,将允许编译器使用“语义进口”,而不是旧的文本包含模型。当找到#include预处理器指令时,它们将读取包含表示代码的抽象语法树的序列化的二进制文件,而不是执行复制和粘贴操作。

这些语义导入避免了包含在头文件中的代码的多次重新编译,加快了编译速度。例如。如果您的项目包含100 s的<iostream>,则在不同的.cpp文件中,每个语言配置只能解析标头一次,而不是每个使用该模块的翻译单元解析一次。

微软的建议超出了这个范围,并介绍了internal关键字。具有internal可见性的类中的成员将不会在模块外部看到,因此允许类实现人员从类中隐藏实现细节。 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4465.pdf

我在博客中写道使用<iostream>一个小例子,使用LLVM的模块缓存: https://cppisland.wordpress.com/2015/09/13/6/