使用“自动”时出错:未命名类型c++;numpy的版本';阿兰奇 在C++中查找代码实现代码> NoMPy >代码> ARGANG/函数,我发现.< /P>
我将以下代码放在一个文件使用“自动”时出错:未命名类型c++;numpy的版本';阿兰奇 在C++中查找代码实现代码> NoMPy >代码> ARGANG/函数,我发现.< /P>,c++,templates,vector,auto,typename,C++,Templates,Vector,Auto,Typename,我将以下代码放在一个文件test\u arange\u c.cpp: #include <vector> template<typename T> std::vector<T> arange(T start, T stop, T step = 1) { std::vector<T> values; for (T value = start; value < stop; value += step) values.push_b
test\u arange\u c.cpp
:
#include <vector>
template<typename T>
std::vector<T> arange(T start, T stop, T step = 1)
{
std::vector<T> values;
for (T value = start; value < stop; value += step)
values.push_back(value);
return values;
}
int main()
{
double dt;
dt = 0.5;
auto t_array = arange<double>(0, 40, dt);
return 0;
}
#包括
模板
标准::矢量排列(T开始,T停止,T步=1)
{
std::向量值;
对于(T值=开始;值<停止;值+=步进)
值。推回(值);
返回值;
}
int main()
{
双dt;
dt=0.5;
自动t_数组=arange(0,40,dt);
返回0;
}
当我试图编译它时,我得到以下错误:
$ c++ test_arange_c.cpp -o test_arange_c.out
test_arange_c.cpp: In function ‘int main()’:
test_arange_c.cpp:14:8: error: ‘t_array’ does not name a type
auto t_array = arange<double>(0, 40, dt);
<代码> $C++测试TraceAangeE.C.CP-O测试程序
test_arange_c.cpp:在函数“int main()”中:
test_arange_c.cpp:14:8:错误:“t_array”未命名类型
自动t_数组=arange(0,40,dt);
毫无疑问,我犯了一个错误,对于经验丰富的C++用户来说是显而易见的。但是,在搜索Google一段时间后,我还没有找到它是什么。正如@Brian所建议的,我没有启用
C++11
支持
$ c++ --version
c++ (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
这失败了:
$ c++ test_arange_c.cpp -o test_arange_c.out
test_arange_c.cpp: In function ‘int main()’:
test_arange_c.cpp:16:8: error: ‘t_array’ does not name a type
auto t_array = arange<double>(0, 40, dt);
^
看起来您没有启用C++11支持,或者您的编译器没有它。@Brian有没有一种简单的方法来检查这一点?报告我的编译器版本会告诉您是否是这样吗?您可以使用
\uu cplusplus
宏检查是否为给定编译启用了C++11。如果你想知道你的编译器是否实现了C++11,你应该查阅文档。@Brian这里到底是什么关键字需要C++11?(我想更改问题标题,以便将来使用此关键字出现此错误的人能够更轻松地找到解决方案。)
$ c++ -std=c++11 test_arange_c.cpp -o test_arange_c.out
$