This bug fix required the following change to
libstdc++-v3/include/std/tuple:
- template<typename... _UElements, typename = typename
- enable_if<__and_<integral_constant<bool, sizeof...(_UElements)
- == sizeof...(_Elements)>,
- __all_convertible<__conv_types<_UElements...>,
- __conv_types<_Elements...>>
- >::value>::type>
+ template<typename... _UElements,
+ typename = typename enable_if<sizeof...(_UElements)
+ == sizeof...(_Elements)>::type,
+ typename = typename
+ enable_if<__all_convertible<__conv_types<_UElements...>,
+ __conv_types<_Elements...> >::value
+ >::type>
__and_ doesn't have the shortcut semantics of &&, so checking for equal
sizeof... didn't prevent us from trying the __all_convertible test.
Hmm, actually, that still shouldn't have produced an error, it should
just SFINAE. Another bug to fix...
Jason