Шаблон C++ Variadic AND и OR

Можете ли вы использовать вариативные шаблоны С++ 11 для завершения /* ??? */в:

template struct var_and { static bool constexpr value = /* ??? */; };

так что var_and::valueпредоставляет &&по логическому пакету vво время компиляции -?

Можете ли вы сделать то же самое для struct var_orдля ||?

Можете ли вы использовать оценку короткого замыкания -(в обоих случаях )?

Изменить:В обновлении принятого ответа добавлено, что C++17 кратные выражения включают

template constexpr bool var_and = (v &&...);
template constexpr bool var_or  = (v ||...);

Похоже, что для подходов, основанных на пакете параметров -, возможен только ограниченный тип «короткой -оценки цепи» :, в то время как создание экземпляра var_orвызывает только один раз ||, он также вызывает оба fooи bar.

7
задан Community 23 May 2017 в 10:34
поделиться