On 1 December 2016 at 07:38, Markus Trippelsdorf <mar...@trippelsdorf.de> wrote: > It breaks building Firefox:
Sigh, when writing a trait, write a proper trait. Does this patch fix the problem? 2016-12-01 Ville Voutilainen <ville.voutilai...@gmail.com> The convertible_to traits need to use a variadic catch-all for the false-cases. * include/std/istream (__is_convertible_to_basic_istream): Change the parameter of the false-case of __check to a variadic. * include/std/ostream (__is_convertible_to_basic_ostream): Likewise.
diff --git a/libstdc++-v3/include/std/istream b/libstdc++-v3/include/std/istream index 319e226..1d77d30 100644 --- a/libstdc++-v3/include/std/istream +++ b/libstdc++-v3/include/std/istream @@ -915,7 +915,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Ch, typename _Up> static basic_istream<_Ch, _Up>& __check(basic_istream<_Ch, _Up>*); - static void __check(void*); + static void __check(...); public: using istream_type = decltype(__check(declval<typename remove_reference<_Tp>::type*>())); diff --git a/libstdc++-v3/include/std/ostream b/libstdc++-v3/include/std/ostream index 70fd10b..9dea778 100644 --- a/libstdc++-v3/include/std/ostream +++ b/libstdc++-v3/include/std/ostream @@ -619,7 +619,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Ch, typename _Up> static basic_ostream<_Ch, _Up>& __check(basic_ostream<_Ch, _Up>*); - static void __check(void*); + static void __check(...); public: using ostream_type = decltype(__check(declval<typename remove_reference<_Tp>::type*>()));