c++ - 是否可以并行编译单个 C++ 翻译单元?

标签 c++ gcc compiler-construction clang

是否可以并行编译单个 C++ 翻译单元?

如果可以,怎么做? (特别是如何使用 clang 或 gcc 来实现)

否则,为什么不呢?

最佳答案

我非常怀疑是否可以并行编译。

C 和 C++ 语言取决于求值顺序。文件中较高的 #define 可能会更改其后所有内容的含义。在 C++ 中,运算符可能会调用函数或执行其他操作,具体取决于运算符覆盖函数的存在。事实上,符号名称的存在与否可能会影响它是被解释为变量还是类型。

可以在不引用符号表的情况下并行完成的简单解析部分非常容易完成,以至于线程化它们几乎没有意义。困难的部分本质上是序列化的。

一种语言可能被设计为允许在单个单元中进行并行编译,但它不会是 C。

关于c++ - 是否可以并行编译单个 C++ 翻译单元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22072733/

相关文章:

python - 不在实时服务器上托管编译器的原因是什么?

c++ - 如何使用 dll 中的 exe 实现的类

c - 将非常量参数传递给需要 const 参数的函数时发出警告。有没有更好的办法?

c++ - 为什么获取网站源码时会出现特殊字符? C++

c++ - 在 C++0x lambda 中通过复制捕获引用变量

c++ - SSE2 指令在 C++ 的内联汇编中不起作用

c++ - 用一些 ASM 代码包装函数指令

vb.net - 为什么 VB.NET 编译器会认为接口(interface)没有实现?

C++ 用户定义的空默认构造函数与隐式或默认默认构造函数

c++ - 检测显示器上的 10 位颜色支持