I'm reading some code in the std c++ type_traits header (in /opt/rh/devtoolset-8/root/usr/include/c++/8/type_traits)
112 template<typename _B1, typename _B2, typename _B3, typename... _Bn>
113 struct __or_<_B1, _B2, _B3, _Bn...>
114 : public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type
115 { };
And I don't understand why we need _B3, because I think B1, B2 and Bn is enough
001 template<typename _B1, typename _B2, typename... _Bn>
002 struct __or_<_B1, _B2, _Bn...>
003 : public conditional<_B1::value, _B1, __or_<_B2, _Bn...>>::type
004 { };
What's the purpose of _B3 here in the STL _or template?