使用“自动”时出错:未命名类型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
$