Russian Qt Forum
Октябрь 17, 2024, 14:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Какой тип у лямбды?  (Прочитано 3598 раз)
fisenkdima
Гость
« : Апрель 05, 2013, 11:23 »

Не могу сообразить, почему QtCreator выдаёт ошибку на нижеприведённый код: 'function' was not declared in this scope,
хотя и подсвечивает это слово фиолетовым (т.е. понимает, что это). Мне нужно передавать функтор неким сложным образом между объектами,
а я не знаю, какой проставлять тип принимаемого значения, и что нужно подключить инклюдом (если требуется что-то подключать).
Подскажите, пожалуйста, в чем мой косяк и как его можно исправить.
Код:
#include <QCoreApplication>

#include <functional>

int main( int argc, char *argv[] )
{
    QCoreApplication a( argc, argv );
   
    function< int ( int )> func1 = []( int i )->int{ return i; };

    function< int ( int )> func2 = func1;
    func2( 2 );
    return a.exec();
}
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #1 : Апрель 05, 2013, 11:36 »

using namespace std
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #2 : Апрель 05, 2013, 11:38 »

using namespace std
Нееее. using std::function;
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
fisenkdima
Гость
« Ответ #3 : Апрель 05, 2013, 11:56 »

Мимо. Это я уже пробовал.
'std::function' has not been declared
Записан
RedDog
Гость
« Ответ #4 : Апрель 05, 2013, 11:58 »

А Ц11 подключен директивами?
Записан
fisenkdima
Гость
« Ответ #5 : Апрель 05, 2013, 12:01 »

Попадание. Блин, второй раз уже на одни и те же грабли наступаю, пора бы запомнить >.<
Спасибо за помощь.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #6 : Апрель 05, 2013, 13:41 »

Код:
    function< int ( int )> func1 = []( int i )->int{ return i; };
Если нетрудно, растолкуйте что все это значит (особенно []  Непонимающий)
Спасибо
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #7 : Апрель 05, 2013, 14:58 »

Это лямбда-функция из стандарта C++11. Вот еще статья на эту тему.
« Последнее редактирование: Апрель 05, 2013, 15:00 от Hellraiser » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.158 секунд. Запросов: 22.