Форум программистов, компьютерный форум CyberForum.ru

Как вернуть значение лямбды? - C++

Восстановить пароль Регистрация
 
maxm
 Аватар для maxm
33 / 20 / 6
Регистрация: 17.07.2014
Сообщений: 351
29.06.2016, 13:29     Как вернуть значение лямбды? #1
C++
1
2
3
4
int someFunc()
{
    return []() -> int {return 1;}; // не работает. Как возвращать такие штуки? 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
meJevin
 Аватар для meJevin
153 / 145 / 56
Регистрация: 18.11.2015
Сообщений: 600
Завершенные тесты: 1
29.06.2016, 13:35     Как вернуть значение лямбды? #2
Все возвращается.

C++
1
2
3
4
5
6
7
8
9
int main()
{
 
    auto func = []() -> int { return 1; };
 
    std::cout << func() << std::endl; // 1
 
    _getch();
}
Добавлено через 1 минуту
Ну и по аналогии
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int someFunc()
{
    auto func = []() -> int { return 1; };
    return func(); 
}
 
int main()
{
 
    std::cout << someFunc() << std::endl; // 1
 
    _getch();
}
maxm
 Аватар для maxm
33 / 20 / 6
Регистрация: 17.07.2014
Сообщений: 351
29.06.2016, 13:36  [ТС]     Как вернуть значение лямбды? #3
Спасибо. А без auto не выйдет?
avgoor
562 / 352 / 83
Регистрация: 05.12.2015
Сообщений: 1,137
29.06.2016, 13:41     Как вернуть значение лямбды? #4
maxm, return []() -> int {return 1;}(); // Вызывать то ее кто будет?
meJevin
 Аватар для meJevin
153 / 145 / 56
Регистрация: 18.11.2015
Сообщений: 600
Завершенные тесты: 1
29.06.2016, 13:50     Как вернуть значение лямбды? #5
avgoor, good catch. Я и не заметил, фигню какую-то начал писать.

Добавлено через 2 минуты
maxm, вам надо было вызвать её с самого начала. Вы её создали, но не вызывали. Поэтому компилятор думает, что вы хотите вернуть из функции лямбда выражение
Babysitter
 Аватар для Babysitter
78 / 103 / 34
Регистрация: 23.11.2015
Сообщений: 315
Завершенные тесты: 1
29.06.2016, 14:06     Как вернуть значение лямбды? #6
подводя итог - такой костыль должен работать.
C++
1
2
3
4
int someFunc()
{
    return ([]() -> int {return 1;})();
}
извиняюсь, не заметил, уже было
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2016, 14:30     Как вернуть значение лямбды?
Еще ссылки по теме:

C++ Как вернуть из моей функции значение реестра?
C++ Функции, как вернуть значение?
C++ Как вернуть значение из макроса?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2135 / 968 / 223
Регистрация: 30.11.2013
Сообщений: 3,239
29.06.2016, 14:30     Как вернуть значение лямбды? #7
maxm, итого - вы тревожите клавиши клавиатуры попусту и возвращаете литерал. В чём смысл?
Yandex
Объявления
29.06.2016, 14:30     Как вернуть значение лямбды?
Ответ Создать тему
Опции темы

Текущее время: 12:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru