0 / 0 / 0
Регистрация: 15.05.2012
Сообщений: 193
|
||||||
1 | ||||||
Передача лямбда выражения в функцию03.02.2020, 13:35. Просмотров 1914. Ответов 16
Метки нет Все метки)
(
Не могу передать лямбда выражение (строка 131) в функцию (строка 94). В отладчике лямбда выражение (predicate) имеет тип <lambda(const Date&, const string&)>
0
|
|
03.02.2020, 13:35 | |
Передача переменной в лямбда-функцию по значению Передача аргумента в функцию (Лямбда выражения) Помогите пожалуйста определить функцию, которая проверяет список на лямбда-выражения Лямбда-выражения. Как описать лямбда-процедуру и передать в нее файловую переменную? |
|
С чаем беда...
![]() ![]() 8496 / 4218 / 1169
Регистрация: 18.10.2014
Сообщений: 9,140
|
|
03.02.2020, 14:31 | 3 |
1
|
0 / 0 / 0
Регистрация: 15.05.2012
Сообщений: 193
|
|
03.02.2020, 14:56 [ТС] | 4 |
Я не знаю как передать. Вот такие ошибки компилятор пишет:
main.cpp:53: undefined reference to `Database::FindIf(std::function<bool (Date, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)>)' collect2.exe: error: ld returned 1 exit status
0
|
Комп_Оратор)
![]() |
|
03.02.2020, 14:58 | 5 |
EvilingDark, "не могу", это хорошее и членораздельное начало. Зачем же вы оборвали стиль? Я не нашёл определения для класса Date, хотя он является объектом сравнения и возможно его проблемы - проблема и компоратора (предиката). Ну так как нет конкретики (а есть куча лишнего) - позволю себе пованговать. Некоторые классы терпеть не могут передачу локальных функторов в качестве предикат, насколько я помню. Во всяком случае нужно не забывать квалификатор константности например.
0
|
0 / 0 / 0
Регистрация: 15.05.2012
Сообщений: 193
|
|
03.02.2020, 15:05 [ТС] | 6 |
coursera_26_dataBase.rar
Вот весь проект, думал хватит того что я скопировал. Я не знаю как еще перефразировать. Я нашел 2 варианта как передать функцию, 1 в проекте, 2 bool (*f) (const Date& date, const string& event);
0
|
С чаем беда...
![]() ![]() 8496 / 4218 / 1169
Регистрация: 18.10.2014
Сообщений: 9,140
|
|
03.02.2020, 15:11 | 7 |
Эти ошибки не имеют никакого отношения ни к каким лямбдам. Вам компилятор ясно говорит, что вы не определили эту функцию. При чем здесь передача лямбды вообще?
И? Где в этом наборе файлов определение функции Database::FindIf ?
0
|
![]() 8394 / 3934 / 859
Регистрация: 15.11.2014
Сообщений: 8,881
|
|
03.02.2020, 15:15 | 8 |
0
|
0 / 0 / 0
Регистрация: 15.05.2012
Сообщений: 193
|
||||||
03.02.2020, 15:19 [ТС] | 9 | |||||
Я ее еще не написал.
Вот такие ошибки: error: declaration of 'std::vector<std::__cxx11::basic_string<char> > Database::FindIf(std::function<bool(const Date&, const std::__cxx11::basic_string<char>&)>)' outside of class is not definition [-fpermissive] vector<string> Database::FindIf(function<bool(const Date& date, const string& event)> f); error: expected unqualified-id before '{' token { ^
0
|
С чаем беда...
![]() ![]() 8496 / 4218 / 1169
Регистрация: 18.10.2014
Сообщений: 9,140
|
|
03.02.2020, 15:24 | 10 |
Ну так потому и ошибка. Если вы будете вызывать функции, которые вы "еще не написали", то будете получать такие ошибки. Лямбды в этом никаким боком не замешаны.
Если вы не знакомы с элементарным синтаксисом определения функции, то я уж не знаю, что вам сказать. Зачем вы поставили там эту ; ?
0
|
0 / 0 / 0
Регистрация: 15.05.2012
Сообщений: 193
|
||||||
03.02.2020, 15:53 [ТС] | 11 | |||||
Вот написал, толку только никакого, ошибки те же. Даже синтаксис иде не выделяет.
error: declaration of 'std::vector<std::__cxx11::basic_string<char> > Database::FindIf(std::function<bool(const Date&, const std::__cxx11::basic_string<char>&)>)' outside of class is not definition [-fpermissive] vector<string> Database::FindIf(function<bool(const Date& date, const string& event)> f); error: expected unqualified-id before '{' token { ^
0
|
0 / 0 / 0
Регистрация: 15.05.2012
Сообщений: 193
|
|
03.02.2020, 16:26 [ТС] | 12 |
coursera_26_dataBase.rar
main.cpp:52: undefined reference to `Database::FindIf(std::function<bool (Date, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)>)' В чем ошибка?
0
|
![]() 8394 / 3934 / 859
Регистрация: 15.11.2014
Сообщений: 8,881
|
||||||
03.02.2020, 16:28 | 13 | |||||
убери точку с запятой
должно быть так:
хочешь выложить материалы - запаковывай zip он по дефолту уже установлен на большинстве ОС. специально ради тебя выкачивать платный rar никто не станет.
0
|
0 / 0 / 0
Регистрация: 15.05.2012
Сообщений: 193
|
|
03.02.2020, 16:28 [ТС] | 14 |
0
|
0 / 0 / 0
Регистрация: 15.05.2012
Сообщений: 193
|
|
03.02.2020, 16:35 [ТС] | 16 |
0
|
Тематические курсы и обучение профессиям онлайн Профессия Разработчик на C++ (Skillbox) Архитектор ПО (Skillbox) Профессия Тестировщик (Skillbox) |
![]() 8394 / 3934 / 859
Регистрация: 15.11.2014
Сообщений: 8,881
|
|
03.02.2020, 17:30 | 17 |
это такое описание проблемы?
предлагаешь присутствующим самим догадаться, какие такие "другие" проблемы там у тебя теперь? не понятно, зачем ты мне это написал. мне как бе пофигу чем ты всю жизнь пользовался. подправил твой код немножко (см TODO) ошибок компиляции у тебя там не было. были ворнинги, и парочка UB. coursera_26_dataBase.zip при запуске показывает успешное прохождение тестов, а потом срабатывает assert. причину срабатывания я выяснять не стал.
1
|
03.02.2020, 17:30 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь. Передача лямбда в функции Лямбда выражения
Лямбда-выражения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |