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.