如何在使用英特尔Windows编译器的命令行上禁用C ++ 0x和/或C ++ 11?

时间:2013-11-29 14:05:57

标签: c++11 nvcc

我的跨平台项目上的构建系统有一个英特尔Windows C ++命令行,由于检测到编译器功能集,可能有也可能没有/ Qstd = c ++ 0x。对于大多数代码库,这很好用,但是对于少量的CUDA文件,我需要禁用更新的C ++方言以适应nvcc包装器编译器的约束。

如何在命令行末尾添加/ Qstd = c ++ 98或/ Qnostd = c ++ 0x之类的内容,以便它覆盖任何早期的C ++方言规范?

编辑:我们已经了解到这些标志实际上是针对英特尔编译器的,我发现附加/ Qstd = c ++ 98可能是正确的方法。

1 个答案:

答案 0 :(得分:5)

你不能用于MSVC。每个MSVC版本都希望自己对两个或三个标准之间的某些内容进行解释,而您却坚持使用它。

您引用的选项适用于英特尔编译器(请参阅here)。如果可能的话,我建议使用英特尔编译器。

我确实没有看到如何禁用C ++编译器中最近的方言会让nvcc包装编译器满意......只是不要编写C ++ 11代码,你会没事的吗?