Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 October 12

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
Прочитала, что с помощью лямбда-функций можно решить проблему
источник

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
Пишу так:
источник

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
auto res = std::async(std::launch::async, [&f1, &f2](It p, It q)->ResType {return map (p, q, f1, f2)});
источник

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
Получаю синтаксическую ошибку
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
указать шаблонные параметры явно у map, наверное
источник

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
auto res = std::async(std::launch::async, map(p, q, f1, f2));
источник

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
Так?
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
ну штуки в <>
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
или там их нельзя указать🤔
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
та можно по идее
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
я тип не помню, не юзал)))
но по идее мы ж передаем функцию(имя, т.е. адрес)
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
map само по себе ваще сравни комментарию.. такой функции тупо не существует
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
вот map<int> какой-нибудь уже существует
источник

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
map - это мое пользовательское имя
источник

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
Анна Хашпер
template<typename It, typename UnFunc, typename BiFunc>
auto map(It p, It q, UnFunc f1, BiFunc f2)->decltype(f2(f1(*p), f1(*p)))
{
 using ResType = decltype(f2(f1(*p), f1(*p)));
 ResType res = f1(*p);
 while (++p != q)
   res = f2(res, f1(*p));
 return res;
}
Вот реализация
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
я в курсе, но имя в данном случае не map
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
а map<arg1, arg2 и т.д.>
источник

AO

Anton Ornatskyi in IT KPI C/C++ ХВ (не UB)
О, заодно люди посмотрят зачем придумали неймспейсы и почему плохо писать using std;
источник

AO

Anton Ornatskyi in IT KPI C/C++ ХВ (не UB)
По сути в асинк получается надо передавать инстанциированную уже функцию для конкретного типа (имхо)
источник

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
auto res = std::async(std::launch::async, map <p, q, f1, f2>);
источник