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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
maxm
60 / 32 / 8
Регистрация: 17.07.2014
Сообщений: 436
#1

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

29.06.2016, 13:29. Просмотров 201. Ответов 6
Метки нет (Все метки)

C++
1
2
3
4
int someFunc()
{
    return []() -> int {return 1;}; // не работает. Как возвращать такие штуки? 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2016, 13:29     Как вернуть значение лямбды?
Посмотрите здесь:

как вернуть значение? - C++
Здравствуйте не могу сделать, не знаю как! #include <iostream> #include <iomanip> #include <fstream> #include <cstdlib> #include...

Как вернуть значение функции - C++
#include "stdafx.h" #include <iostream> struct list{ float data; list *next; }; void my(list *p) {

Как вернуть значение функции в С++ - C++
Помогите с задачей

Как вернуть значение из макроса? - C++
Как сделать стобы из макроса возвращалось значение? #include "stdio.h" int main(void) { #define mac(a,b)\ for (int...

Как правильно вернуть значение? - C++
class Stack { private: myString *st; ... myString getSt() { return st; // не работает }

Функции, как вернуть значение? - C++
Нужно вернуть значение sum и min и вывести их main.cpp Но компилятор пишет, что: "Ошибка : использована неинициализированная локальная...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
meJevin
155 / 147 / 58
Регистрация: 18.11.2015
Сообщений: 644
Завершенные тесты: 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
60 / 32 / 8
Регистрация: 17.07.2014
Сообщений: 436
29.06.2016, 13:36  [ТС]     Как вернуть значение лямбды? #3
Спасибо. А без auto не выйдет?
avgoor
884 / 519 / 112
Регистрация: 05.12.2015
Сообщений: 1,464
29.06.2016, 13:41     Как вернуть значение лямбды? #4
maxm, return []() -> int {return 1;}(); // Вызывать то ее кто будет?
meJevin
155 / 147 / 58
Регистрация: 18.11.2015
Сообщений: 644
Завершенные тесты: 1
29.06.2016, 13:50     Как вернуть значение лямбды? #5
avgoor, good catch. Я и не заметил, фигню какую-то начал писать.

Добавлено через 2 минуты
maxm, вам надо было вызвать её с самого начала. Вы её создали, но не вызывали. Поэтому компилятор думает, что вы хотите вернуть из функции лямбда выражение
Babysitter
80 / 107 / 35
Регистрация: 23.11.2015
Сообщений: 331
Завершенные тесты: 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++
У меня так получается, что ввод в фу-ции не осуществляется. То есть a=0 b=0 c=0, так это и остаётся, cin в фу-ции вообще не дзаносит...

Как вернуть значение из цикла в выражение? - C++
Даны натуральное число n, действительное число х. Вычислить формулу: Как вытащить значение m из цикла, чтоб вписать ее в формулу? ...

Как вернуть из моей функции значение реестра? - C++
Здравствуйте.2й день стал изучать работу с реестром.Ничего с мсдн не понял.Случайно нашел рабочий код для получения версии Windows.Все...

Как создать псевдоним для лямбды? - C++
ПРИВЕТ. не поможете ли советом, как решить проблему: хочу дать имя классу лямбды, но чето не выходит using PREDICATE = (const...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru