首页 > 解决方案 > nvcc 不支持 C++11 函数 iota()?

问题描述

我试图编译这段代码: -

#include <vector>

using namespace std;

int main() {
    vector<int> v(5);
    iota(v.begin(), v.end(), 0);
}

我用这个命令编译它: -

D:\workspace\test>nvcc main.cpp --std=c++11

(因为没有指定标准,我得到了“找不到标识符 iota()”错误)

我得到这个错误: -

nvcc warning : The -std=c++11 flag is not supported with the configured host compiler. Flag will be ignored.
main.cpp
main.cpp(7): error C3861: 'iota': identifier not found

如何指定我希望 nvcc 使用的 C++ 标准?

此外,使用 g++ 分别编译主机代码和使用 nvcc 编译设备代码,然后使用 nvcc 链接对象也不起作用。我明白

标签: c++c++11c++14nvcc

解决方案


我认为您需要添加#include <numeric>. 在此处输入图像描述


推荐阅读