<分区>
我是 C++11 的新手,发现找到替代方法使我的代码与 Clang 和 Visual C++ 兼容是一项艰巨而乏味的工作。
这个事实背后的原因是什么?是技术难点吗?与旧的非标准语言扩展的兼容性?不同的优先级?或者还有其他可能吗?
<分区>
我是 C++11 的新手,发现找到替代方法使我的代码与 Clang 和 Visual C++ 兼容是一项艰巨而乏味的工作。
这个事实背后的原因是什么?是技术难点吗?与旧的非标准语言扩展的兼容性?不同的优先级?或者还有其他可能吗?
最佳答案
Why most of the modern C++ compilers only support limited C++0x features, while Clang supports all of them?
clang 的设计比大多数其他主要编译器晚得多,并且其构建方式使其更容易支持某些现代功能。许多其他编译器,例如 MSVC 和 GCC,支持除 clang 之外的许多其他目标,并且具有庞大的遗留代码库。随着时间的推移,对这些编译器的更改往往会变得更慢。
and found it is a difficult and tedious work to find alternative ways to make my code compatible with both Clang and Visual C++.
一般来说,我发现如果您坚持使用子集(在本例中,为 Visual C++ 编写),那么 clang 通常会支持不做任何更改的代码,前提是您避免使用 Microsoft 语言扩展。转向另一个方向通常更具挑战性。
关于c++ - 为什么在现阶段,大多数现代 C++ 编译器只支持有限的 C++0x 功能,而 Clang/GCC 支持所有这些功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18580510/