我是 C++11 的新手,发现找到使我的代码与 Clang 和 Visual C++ 兼容的替代方法是一项艰巨而乏味的工作。
这个事实背后的原因是什么?是技术难点吗?与旧的非标准语言扩展兼容?不同的优先事项?或者还有其他可能吗?
我是 C++11 的新手,发现找到使我的代码与 Clang 和 Visual C++ 兼容的替代方法是一项艰巨而乏味的工作。
这个事实背后的原因是什么?是技术难点吗?与旧的非标准语言扩展兼容?不同的优先事项?或者还有其他可能吗?
为什么大多数现代 C++ 编译器只支持有限的 C++0x 特性,而 Clang 支持所有这些特性?
clang 的设计比大多数其他主要编译器晚得多,并且其构建方式更容易支持一些现代特性。许多其他编译器,例如 MSVC 和 GCC,支持许多其他目标而不是 clang,并且拥有大量的遗留代码库。随着时间的推移,对这些编译器的更改往往会变得更慢。
并发现找到使我的代码与 Clang 和 Visual C++ 兼容的替代方法是一项艰巨而乏味的工作。
一般来说,我发现如果你坚持使用子集(在这种情况下,为 Visual C++ 编写),那么如果你避免使用 Microsoft 语言扩展,clang 通常会支持不做任何更改的代码。转向另一个方向往往更具挑战性。
因为 Visual 上的更改似乎需要时间,就像在 GCC 中一样。GCC 几乎支持一切。
但这也是一个优先级的问题。事实上,在 CLang 之前,GCC 已经是完整的 C++11(即使这只是因为 CLang 正在等待正式发布日期,一切都准备好了)。
视觉需要更多时间,因为他们还花费精力使 IDE 变得更好。而且他们的开发人员更少。