Index: include/type_traits =================================================================== --- include/type_traits +++ include/type_traits @@ -553,9 +553,6 @@ template <> struct __lazy_and_impl : true_type {}; -template -struct __lazy_and_impl : integral_constant {}; - template struct __lazy_and_impl : __lazy_and_impl<_Hp::type::value, _Tp...> {}; @@ -591,12 +588,9 @@ template struct __and_<_B0> : _B0 {}; -template -struct __and_<_B0, _B1> : conditional<_B0::value, _B1, _B0>::type {}; - -template -struct __and_<_B0, _B1, _B2, _Bn...> - : conditional<_B0::value, __and_<_B1, _B2, _Bn...>, _B0>::type {}; +template +struct __and_<_B0, _B1, _Bn...> + : conditional<_B0::value, __and_<_B1, _Bn...>, _B0>::type {}; // __or_ template struct __or_; @@ -604,12 +598,9 @@ template struct __or_<_B0> : _B0 {}; -template -struct __or_<_B0, _B1> : conditional<_B0::value, _B0, _B1>::type {}; - -template -struct __or_<_B0, _B1, _B2, _Bn...> - : conditional<_B0::value, _B0, __or_<_B1, _B2, _Bn...> >::type {}; +template +struct __or_<_B0, _B1, _Bn...> + : conditional<_B0::value, _B0, __or_<_B1, _Bn...> >::type {}; // __not_ template