Ищет код для реализации numpy
arange
Функция в C++, я нашел this answer.ошибка при использовании auto: не называет тип, C++ версия arge numpy
я поместил следующий код в файле 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++. Но, после долгого поиска Google, я не придумал, что это такое.
Похоже, что вы не включили поддержку C++ 11, или ваш компилятор не имеет его. – Brian
@Brian есть простой способ проверить это? сообщит, что моя версия компилятора сообщит вам, так ли это? – dbliss
Вы можете проверить, включен ли C++ 11 для данной компиляции с использованием макроса '__cplusplus'. http://stackoverflow.com/questions/5047971/how-do-i-check-for-c11-support – Brian