Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > g++ и лямбда выражения


Автор: cupper 3.11.2010, 00:17
на вот такой код
Код

vector<int> vec(3);
    vec.push_back(1);
    vec.push_back(2);
    vec.push_back(3);
    
    for_each(vec.begin(), vec.end(), [](int n)->void{cout<<n<<endl;});

выдает вот такие ошибки
Цитата

main.cpp:12: error: expected primary-expression before ‘[’ token
main.cpp:12: error: expected primary-expression before ‘]’ token
main.cpp:12: error: expected primary-expression before ‘int’
main.cpp:12: error: expected unqualified-id before ‘void’

Код

gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5) 

в 4.4.5 уже ведь должна быть их поддержка ? мб какую опцию компиляции задать нужно указам ясно C++0x мол использовать, нагуглить так ничего и не смог ;(

PS. пробовал так g++ main.cpp -o asio -std=c++0x, теже ошибки.

Автор: boostcoder 3.11.2010, 00:19
установи 4.5.1 в репах бубунты он есть.
и силинки нужно вручную переставить на gcc, g++, cpp с суффиксами 4.5

Автор: cupper 3.11.2010, 09:42
установлю. Не понял про симлинки, можно чутку поподробней...

Спасибо.

Автор: boostcoder 3.11.2010, 12:17
Цитата(cupper @  3.11.2010,  09:42 Найти цитируемый пост)
про симлинки, можно чутку поподробней...

переходишь в /usr/bin, видишь там симлинки gcc, g++, cpp.
смотришь на кого они ссылаются. а ссылаются они на gcc-4.4, g++-4.4, cpp-4.4 соответственно.
удаляешь их. создаешь новые с такими же именами, но ссылающимися на gcc-4.5, g++-4.5, cpp-4.5.

все smile 

Автор: JackYF 5.11.2010, 21:54
cupper, 
Цитата

-std=gnu++0x

Поддержка лямбд появилась в gcc 4.5.x.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)