Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2010, 01:41   #1
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
Вопрос g++ лямбда

Почему у меня выдаёт ошибки на этот код? Флаги -std=c++0x и -std=gnu++0x пробовал.

Цитата:
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;

int main() {
int a[] = {1,2,3,4,5};
vector<int> varray(a,a+5);

for_each(varray.begin(),varray.end( ), [](int n){cout<<n<<endl;});
return 0;
}
the_deer_one вне форума Ответить с цитированием
Старый 22.08.2010, 14:24   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

А какая версия g++? И что за ошибки? У меня на мингв 4.5.0 всё отлично компилируется. Кстати в новом стандарте добавили списки инициализации, потому можно так писать:
Код:
#include <iostream>
#include <vector>
#include <algorithm>

int main () {
	std::vector<int> vec = { 1, 2, 3, 4, 5 }; // не нужно отдельно массив создавать
	
	std::for_each (vec.begin (), vec.end (), [] (int n) { std::cout << n << ' '; });
}

Последний раз редактировалось netrino; 22.08.2010 в 14:26.
netrino вне форума Ответить с цитированием
Старый 22.08.2010, 14:58   #3
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

netrino
g++ 4.4.3

Код:
rize@rz:~/projects/test$ g++ -std=c++0x test.cpp 
test.cpp: In function ‘int main()’:
test.cpp:8: error: expected primary-expression before ‘[’ token
test.cpp:8: error: expected primary-expression before ‘]’ token
test.cpp:8: error: expected primary-expression before ‘int’
Цитата:
Кстати в новом стандарте добавили списки инициализации
Во! Круто!! С флагом нового стандарта они пашут. А лямбда - нет.

Последний раз редактировалось the_deer_one; 22.08.2010 в 15:06.
the_deer_one вне форума Ответить с цитированием
Старый 22.08.2010, 15:19   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от the_deer_one Посмотреть сообщение
netrino
g++ 4.4.3

Код:
rize@rz:~/projects/test$ g++ -std=c++0x test.cpp 
test.cpp: In function ‘int main()’:
test.cpp:8: error: expected primary-expression before ‘[’ token
test.cpp:8: error: expected primary-expression before ‘]’ token
test.cpp:8: error: expected primary-expression before ‘int’

Во! Круто!! С флагом нового стандарта они пашут. А лямбда - нет.
Ну, очевидно, что в этой версии g++ ещё не реализованы лямбда-функции. Обновляйтесь до 4.5
netrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лямбда в С++? Utkin Общие вопросы по программированию, компьютерный форум 8 04.06.2010 12:51
Где можно найти про лямбда-исчисление? Utkin Общие вопросы по программированию, компьютерный форум 2 20.01.2010 09:24