Re[8]: хитрая конструкция
От: Кодт Россия  
Дата: 06.03.15 15:14
Оценка: 25 (2)
Здравствуйте, Hard_Club, Вы писали:

X>>да, использование лямбды тут совершенно необосновано.


H_C>а как можно без лямбды?


Да любым способом утилизировать произвольное количество аргументов.
void devnull(...) {}

#define CALL(expr) ( (expr), void(), 0 ) // выполняет выражение, возможно, типа void, и возвращает int 0

template<class F, class... Xs>
void each(F f, Xs&&... xs)
{
  devnull( CALL(f(xs))... );
  (void) std::initializer_list<int> { CALL(f(xs))... };
  int nulls[] = { CALL(f(xs))... };

}
Перекуём баги на фичи!
Отредактировано 06.03.2015 15:15 Кодт . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.