尝试使用-std=c++11
标志编译CUDA代码时遇到错误。
error: more than one instance of overloaded function "isnan" matches the argument list:
function "isnan(float)"
function "std::isnan(float)"
argument types are: (r32)
({r32
是typedef
的{{1}})
我发现this question,其中的答案表明根本不指定C ++ 11来解决此问题,因为我使用的是{{1} }和lambda。有没有一种方法可以在启用C ++ 11功能的情况下进行编译,并且仍然可以解决这种歧义?
我正在使用以下命令进行编译:
float
编译器版本为:
constexpr
任何帮助或建议将不胜感激。谢谢!
答案 0 :(得分:0)
虽然此过载冲突问题是CUDA 8版本编译器的问题,但已在CUDA 9版本中修复,并且遇到此问题的任何人都应升级到CUDA 9或更高版本。
[此答案是通过评论汇总而成的,并添加为社区Wiki答案]