CUDA:重载函数`isnan`的多个实例

时间:2018-09-27 13:28:59

标签: c++ c++11 cuda

尝试使用-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)

({r32typedef的{​​{1}})

我发现this question,其中的答案表明根本不指定C ++ 11来解决此问题,因为我使用的是{{1} }和lambda。有没有一种方法可以在启用C ++ 11功能的情况下进行编译,并且仍然可以解决这种歧义?

我正在使用以下命令进行编译:

float

编译器版本为:

constexpr

任何帮助或建议将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

虽然此过载冲突问题是CUDA 8版本编译器的问题,但已在CUDA 9版本中修复,并且遇到此问题的任何人都应升级到CUDA 9或更高版本。

[此答案是通过评论汇总而成的,并添加为社区Wiki答案]