gpt4 book ai didi

c++ - 使用 auto : does not name a type, c++ 版本的 numpy arange 时出错

转载 作者:行者123 更新时间:2023-11-30 05:37:53 25 4
gpt4 key购买 nike

在 C++ 中寻找实现 numpyarange 函数的代码,我找到了 this answer .

我将以下代码放在文件 test_arange_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;
}

当我尝试编译它时,出现以下错误:

$ 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++ 用户来说很明显的错误。但是,在谷歌搜索了一段时间后,我还没有想出它是什么。

最佳答案

正如@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++ -std=c++11 test_arange_c.cpp -o test_arange_c.out
$

关于c++ - 使用 auto : does not name a type, c++ 版本的 numpy arange 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33092104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com