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*>()));

Reply via email to