首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将clang-cl设置为c++14或c++1z?

如何将clang-cl设置为c++14或c++1z?
EN

Stack Overflow用户
提问于 2015-08-10 16:47:01
回答 2查看 4K关注 0票数 2

我尝试用-std=c++14、-std=c++1z、-std=c++1y设置clang-cl参数。但它们不起作用。我使用的是windows x64和VS 2015的clang 3.7预编译版本。

EN

回答 2

Stack Overflow用户

发布于 2015-08-11 07:26:56

下面链接的Clang页面声称-std=c++11-std=c++14以及-std=c++1z都是受支持的命令。现在考虑到,据我所知,clang-cl是一个clang --driver-mode=cl,它的目标是模仿微软的cl.exe。我不明白为什么这会消除对平台无关特性的支持,比如c++标准。

http://clang.llvm.org/cxx_status.html

编辑:在另一篇关于同一主题的文章中,提到了在clang-cl模式下,为了将参数传递给clang本身,您必须使用:

-Xclang <arg> Pass <arg> to the clang compiler

这里引用了:http://clang.llvm.org/docs/UsersManual.html#clang-cl

票数 5
EN

Stack Overflow用户

发布于 2016-07-29 17:10:37

我不相信-std=c++14是可以工作的。Clang-cl是clang的一个单独的驱动程序(不是那么单独,因为它只是clang的一个重命名),它支持MSVC参数而不是GCC参数。

所有受支持的命令行参数的概述可以在here中找到,它不包含此标志。

根据我的理解,clang-cl接管了MSVC支持的C++特性,而不是使用标准(+ MSVC不支持的一些扩展)。这一点尤其重要,因为MSVC (2015年前)没有在标准上进行区分,例如MSVC 2013包含来自c++11,c++14和c++17的功能,而来自这些相同标准的其他功能不支持或不能正常工作。

因此,为了能够支持MSVC的编译,clang不能在不中断编译的情况下支持-std=c++11标志。(虽然这可能是你想要的),也就是说,clang,所以可能也应该支持MSVC 2015 supports /std:c++14 -cl。(听起来像是bug/功能请求)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31915246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档