c++ - 如何编译使用 std::chrono 和日期的 CUDA 代码?

标签 c++ datetime c++14 c++-chrono

NVCC 编译器拒绝编译下面的代码(使用 .cu 扩展名),因为它不能很好地处理 Howard Hinnant 的日期库。 NVCC 正在调用 GCC 6.4.0。 C++ 编译器本身对这个简单的例子没有任何问题。我该如何解决这个问题?

#include <iostream>
#include "date.h"

int main()
{
    const auto time = std::chrono::system_clock::now();
    const auto daypoint = date::floor<date::days>(time);
    const auto ymd = date::year_month_day{daypoint};

    std::cout << ymd.year() << std::endl;

    return 0;
}
../include/date.h:162:27: error: ‘const intmax_t std::__ratio_multiply<std::ratio<24l>, std::ratio<3600l> >::__gcd1’ is private within this context
 using days = std::chrono::duration
                           ^~~~~~~~                                                                                                                                                            
/nfs/admin/hpc/sw/RedHatEnterpriseServer7/GCCcore/6.4.0/include/c++/6.4.0/ratio:289:32: note: declared private here
       static const intmax_t __gcd1 =
                                ^~~~~ 

最佳答案

我唯一可以推荐的就是向 Nvidia 发送错误报告。这是一个简化的测试用例:

#include <chrono>
#include <ratio>

using days = std::chrono::duration
    <int, std::ratio_multiply<std::ratio<24>, std::chrono::hours::period>>;

int main() {}

关于c++ - 如何编译使用 std::chrono 和日期的 CUDA 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55579521/

相关文章:

c++ - 如何从 blender 导出和导入到 C++(.caf、.xrf、.cmf/xmf ....)?

java - 根据字符串选择日期格式

php - 基于时间的 PHP 问候语

java - 如何使用 SimpleDateFormat 将字符串转换为日期?

c++ - 如何编写 Lambda 包装具有可选返回值的函数

c++ - 原始 new[]/delete[] 与 std::vector 的优化

java - HoughLinesP 生成空图像

c++ - std::string 一次性转换为 int/double

c++ - 了解追加模式下的闪存文件系统磨损

c++ - 如何根据模板参数是否具有别名来专门化类型