C ++ Вариантный шаблон И и ИЛИ

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

template<bool...v> struct var_and { static bool constexpr value = /* ??? */; };

чтобыvar_and<v...>::value обеспечивает&& над логическим пакетомv во время компиляции?

Можете ли вы сделать то же самое дляstruct var_or<v...> за||?

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

Edit: Обновление допринятый ответ добавил, что C ++ 17сложить выражения включить

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

Кажется, что для подходов, основанных на пакетах параметров, только ограниченный тип «оценки короткого замыкания»; возможно: при создании экземпляраvar_or<true,foo(),bar()> только звонки|| один раз, он также вызывает обаfoo а такжеbar.

Ответы на вопрос(2)

Ваш ответ на вопрос