我的跨平台项目上的构建系统有一个英特尔Windows C++命令行,由于检测到编译器功能集,可能有也可能没有/ Qstd = c ++ 0x.对于大多数代码库,这很好用,但是对于少量的CUDA文件,我需要禁用更新的C++方言以适应nvcc包装器编译器的约束.
我应该如何在命令行的末尾添加类似/ Qstd = c ++ 98或/ Qnostd = c ++ 0x的内容,以便它覆盖任何早期的C++方言规范?
编辑:经过教育,这些标志实际上是英特尔编译器,我发现附加/ Qstd = c ++ 98可能是正确的方法.
你不能为MSVC.每个MSVC版本都希望自己对两个或三个标准之间的某些内容进行解释,而您却坚持使用它.
您引用的选项适用于英特尔编译器(请参阅此处).如果可能的话,我建议使用英特尔编译器.
我没有看到如何禁用C++编译器中最近的方言将取悦nvcc包装器编译器...只是不要编写C++ 11代码,你会好吗?