diff options
Diffstat (limited to 'include/ostream')
-rw-r--r-- | include/ostream | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/ostream b/include/ostream index 9bf8d3cdcfb5..f3250a7080dd 100644 --- a/include/ostream +++ b/include/ostream @@ -1071,6 +1071,20 @@ operator<<(basic_ostream<_CharT, _Traits>& __os, shared_ptr<_Yp> const& __p) return __os << __p.get(); } +#ifndef _LIBCPP_HAS_NO_DECLTYPE +template<class _CharT, class _Traits, class _Yp, class _Dp> +inline _LIBCPP_INLINE_VISIBILITY +typename enable_if +< + is_same<void, typename __void_t<decltype(declval<basic_ostream<_CharT, _Traits>&>() << declval<_Yp>())>::type>::value, + basic_ostream<_CharT, _Traits>& +>::type +operator<<(basic_ostream<_CharT, _Traits>& __os, unique_ptr<_Yp, _Dp> const& __p) +{ + return __os << __p.get(); +} +#endif + template <class _CharT, class _Traits, size_t _Size> basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const bitset<_Size>& __x) |