[v3 PATCH] PR libstdc++/80675, PR libstdc++/80940

Jonathan Wakely jwakely@redhat.com
Thu Jun 15 11:01:00 GMT 2017


On 10/06/17 04:38 +0300, Ville Voutilainen wrote:
>-      static void __check(...);
>+  template<typename _Tp>
>+    struct __is_convertible_to_basic_istream
>+    : __is_convertible_to_basic_istream_impl<_Tp>
>+    {
>     public:
>-      using istream_type =
>-	decltype(__check(declval<typename remove_reference<_Tp>::type*>()));
>-      using type = __not_<is_same<istream_type, void>>;
>+      using type = __not_<is_same<void,
>+        typename __is_convertible_to_basic_istream_impl<_Tp>::__istream_type>>;

This could use is_void<...> instead of is_same<void, ...>, same below.

Otherwise OK for trunk, thanks for dealing with this.

80940 is a regression, so we need this on gcc-7-branch too, assuming
it passes testing there.






More information about the Libstdc++ mailing list