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.