首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测是否在NVCC中启用了c++11

检测是否在NVCC中启用了c++11
EN

Stack Overflow用户
提问于 2019-08-13 19:18:00
回答 1查看 284关注 0票数 0

我想检测.cu文件是否在启用C++11支持的情况下编译。目前,我有以下几点:

代码语言:javascript
复制
#if CUDART_VERSION < 7050
  #define C11SUPPORTED 0
#else
  #define C11SUPPORTED 1
#endif

但是,这是不起作用的,因为即使支持C++11,也不会启用它,除非通过-std=c++11交换机。在传递-std=c++11时,可能还有其他定义吗?

更新

nvcc --compiler-options -dM -E -x cu - < /dev/null | grep "__cplus"

返回

#define __cplusplus 201402L

我正在使用NVCC版本的V9.1.85。检查__cplusplus是否有效,即使是较旧的NVCC版本?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-13 19:30:29

如果nvcc是标准一致性的,您应该能够像下面这样检查__cplusplus的值

代码语言:javascript
复制
#if __cplusplus >= 201103
#define C11SUPPORTED 1
#else
#define C11SUPPORTED 0
#endif

检查__cplusplus的值应该与任何C++编译器一起工作,因为至少C++98。

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

https://stackoverflow.com/questions/57484091

复制
相关文章

相似问题

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