c++ - 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 链接对象也不起作用。我明白了。
解决方案
我认为您需要添加#include <numeric>
.
在此处输入图像描述
推荐阅读
- asynchronous - 如何延迟异步函数调用的闭包内的执行?
- python - 影响验证的字符串格式问题
- windows - react-native-debugger 的安装位置在哪里?
- unit-testing - 如何开玩笑地将承诺与多个期望联系起来
- c# - 在 _ViewStart.cshtml 中访问 DBContext
- python - 正则表达式删除特殊字符模式
- r - 为每个日期创建时间块并填充存在数据
- javascript - 如何防止 Selenium 从网页下载某些“源”?
- typescript - 如何告诉打字稿在不解析的情况下在js中逐字包含一行
- vue.js - Quasar(VueX)循环内更新状态