|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.09.2018, 10:45 | #1 |
Регистрация: 17.04.2018
Сообщений: 9
|
лямбда возвращает лямбду
Добрый день.
решаю задание на степике, вот его текст: Рассмотрим следующую функцию find_if: Код:
Пример: Код:
не могу понять, как безымянная функция возвратит безымянную функцию, как это должно выглядеть. вот моё решение, но оно не правильное: Код:
|
02.09.2018, 11:00 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Так а проблема в чем?
Возвращаемый тип в лямбде вроде можно через -> перед { указать если он нужен. Ну и во внутренней какая-то фигня с else.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
02.09.2018, 18:17 | #3 |
Регистрация: 17.04.2018
Сообщений: 9
|
то есть перед { первой лямбды прямо взять и написать ->[](){} с содержимым?
проблема во всей программе и в том, что я видимо не до конца понимаю, что тут делать можно,а что нельзя, или всё задание недопоняла |
02.09.2018, 19:05 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Нет, можно явно указать возвращаемый тип если компилятор не может тут сам определить. Я не помню в какой ситуации это надо делать
Код:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
02.09.2018, 19:41 | #5 |
Регистрация: 17.04.2018
Сообщений: 9
|
но ведь в задании написано, что тип, возвращаемый первой лямбдой есть ещё одна лямбда, а не bool. вот, переписала более адекватно, но всё равно выскакивает огромный список ошибок
Код:
|
02.09.2018, 20:24 | #6 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
bool для примера просто, я не говорил bool тут нужен или не bool (но в возвращаемой лямбде вроде как раз он и есть). Я просто сказал, что в каких-то случаях (в каких именно можете нагуглить сами) надо явно указать тип.
Попробуйте прочитать их. Оно внутри find_if. Более простой пример: Код:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
02.09.2018, 21:21 | #7 |
Регистрация: 17.04.2018
Сообщений: 9
|
там всё ругается на __attribute__ , вроде того: expected ‘=’ before ‘__attribute__’ ; или " expected unqualified-id before string constant"
а я и не знала,что можно вызывать переменную как функцию(как в вашем простом примере).попробую ещё раз переделать всё. спасибо |
02.09.2018, 21:31 | #8 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Даже без лямбд есть operator(), или обычные указатели на функцию из С.
Это ошибка синтаксиса типа пропущенного ; или }
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
02.09.2018, 23:22 | #9 |
Регистрация: 17.04.2018
Сообщений: 9
|
если долго мучиться, то наконец получится))
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Лямбда-ошибка | ser70 | Общие вопросы по Java, Java SE, Kotlin | 5 | 15.10.2015 19:54 |
Лямбда-выражения с STL | shilovec5377 | Visual C++ | 3 | 11.06.2015 22:42 |
Одноканальная СМО. Как найти лямбду? | n_drake | Общие вопросы Delphi | 0 | 21.01.2014 17:19 |
g++ лямбда | the_deer_one | Общие вопросы C/C++ | 3 | 22.08.2010 15:19 |
Лямбда в С++? | Utkin | Общие вопросы по программированию, компьютерный форум | 8 | 04.06.2010 12:51 |