Сообщение Re: Вызов функтора для элементов переменного списка параметр от 30.03.2017 21:50
Изменено 30.03.2017 21:52 andyp
Re: Вызов функтора для элементов переменного списка параметров
Здравствуйте, rg45, Вы писали:
R>При этом важно сохранить порядок следования элементов. До сих пор не знаю, как лучше это реализовать, каждый раз приходится прибегать к какому-нибудь извращению типа такого:
R>Заранее благодарен тому, кто облегчит мои страдания.
если с++17 под рукой нет и враппера не хочется, то вот по С++14:
http://ideone.com/lVDSHX
R>При этом важно сохранить порядок следования элементов. До сих пор не знаю, как лучше это реализовать, каждый раз приходится прибегать к какому-нибудь извращению типа такого:
было | |
R>http://ideone.com/lVDSHX R>
| |
R>Заранее благодарен тому, кто облегчит мои страдания.
если с++17 под рукой нет и враппера не хочется, то вот по С++14:
#include <iostream>
#include <utility>
template <typename F, typename...Args>
void ForEach(F&& f, Args&&...args)
{
//auto wrapper = [&](auto&& t){ f(std::forward<decltype(t)>(t)); return 0; };
auto v = {(f(args),0) ... };
//тут написать что-то , чтобы компилятор не ругался на неиспользуемую переменную
(void) v;
}
int main()
{
ForEach([](auto&& t){ std::cout << t; }, "Pi = ", 3.14);
}
http://ideone.com/lVDSHX
Re: Вызов функтора для элементов переменного списка параметр
Здравствуйте, rg45, Вы писали:
R>При этом важно сохранить порядок следования элементов. До сих пор не знаю, как лучше это реализовать, каждый раз приходится прибегать к какому-нибудь извращению типа такого:
R>Заранее благодарен тому, кто облегчит мои страдания.
если с++17 под рукой нет и враппера не хочется, то вот по С++14:
http://ideone.com/jhekqM
R>При этом важно сохранить порядок следования элементов. До сих пор не знаю, как лучше это реализовать, каждый раз приходится прибегать к какому-нибудь извращению типа такого:
было | |
R>http://ideone.com/lVDSHX R>
| |
R>Заранее благодарен тому, кто облегчит мои страдания.
если с++17 под рукой нет и враппера не хочется, то вот по С++14:
#include <iostream>
#include <utility>
template <typename F, typename...Args>
void ForEach(F&& f, Args&&...args)
{
//auto wrapper = [&](auto&& t){ f(std::forward<decltype(t)>(t)); return 0; };
auto v = {(f(args),0) ... };
//тут написать что-то , чтобы компилятор не ругался на неиспользуемую переменную
(void) v;
}
int main()
{
ForEach([](auto&& t){ std::cout << t; }, "Pi = ", 3.14);
}
http://ideone.com/jhekqM