Вызов функтора для элементов переменного списка параметров
От: rg45 СССР  
Дата: 30.03.17 19:56
Оценка:
Время от времени возникает потребность вывзвать какой-то функтор для каждого элемента из переменного списка параметров.

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))... };
}
}


Заранее благодарен тому, кто облегчит мои страдания.
--
Не можешь достичь желаемого — пожелай достигнутого.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.