Время от времени возникает потребность вывзвать какой-то функтор для каждого элемента из переменного списка параметров.
template <typename F, typename...Args>
void ForEach(F&& f, Args&&...args)
{
//???
}
При этом важно сохранить порядок следования элементов. До сих пор не знаю, как лучше это реализовать, каждый раз приходится прибегать к какому-нибудь извращению типа такого:
http://ideone.com/lVDSHX
template <typename F, typename...Args>
void ForEach(F&& f, Args&&...args)
{
auto wrapper = [&](auto&& t){ f(std::forward<decltype(t)>(t)); return 0; };
std::initializer_list<int>{ wrapper(std::forward<Args>(args))... };
}
}
Заранее благодарен тому, кто облегчит мои страдания.