Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

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

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

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

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

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

6
meJevin
156 / 148 / 58
Регистрация: 18.11.2015
Сообщений: 672
Завершенные тесты: 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();
}
1
maxm
63 / 35 / 8
Регистрация: 17.07.2014
Сообщений: 457
29.06.2016, 13:36  [ТС] #3
Спасибо. А без auto не выйдет?
0
avgoor
962 / 596 / 130
Регистрация: 05.12.2015
Сообщений: 1,682
29.06.2016, 13:41 #4
maxm, return []() -> int {return 1;}(); // Вызывать то ее кто будет?
2
meJevin
156 / 148 / 58
Регистрация: 18.11.2015
Сообщений: 672
Завершенные тесты: 1
29.06.2016, 13:50 #5
avgoor, good catch. Я и не заметил, фигню какую-то начал писать.

Добавлено через 2 минуты
maxm, вам надо было вызвать её с самого начала. Вы её создали, но не вызывали. Поэтому компилятор думает, что вы хотите вернуть из функции лямбда выражение
1
Babysitter
110 / 116 / 36
Регистрация: 23.11.2015
Сообщений: 353
Завершенные тесты: 1
29.06.2016, 14:06 #6
подводя итог - такой костыль должен работать.
C++
1
2
3
4
int someFunc()
{
    return ([]() -> int {return 1;})();
}
извиняюсь, не заметил, уже было
1
rikimaru2013
C++ Game Dev
2468 / 1137 / 240
Регистрация: 30.11.2013
Сообщений: 3,701
29.06.2016, 14:30 #7
maxm, итого - вы тревожите клавиши клавиатуры попусту и возвращаете литерал. В чём смысл?
0
29.06.2016, 14:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2016, 14:30
Привет! Вот еще темы с ответами:

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

Как вернуть значение из фунции в переменную - C++
У меня так получается, что ввод в фу-ции не осуществляется. То есть a=0 b=0 c=0, так это и остаётся, cin в фу-ции вообще не дзаносит...

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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