2015-10-13 7 views
1

Ищет код для реализации numpyarange Функция в 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, я не придумал, что это такое.

+1

Похоже, что вы не включили поддержку C++ 11, или ваш компилятор не имеет его. – Brian

+0

@Brian есть простой способ проверить это? сообщит, что моя версия компилятора сообщит вам, так ли это? – dbliss

+0

Вы можете проверить, включен ли C++ 11 для данной компиляции с использованием макроса '__cplusplus'. http://stackoverflow.com/questions/5047971/how-do-i-check-for-c11-support – Brian

ответ

1

Как предложил @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 
$ 

 Смежные вопросы

  • Нет связанных вопросов^_^