Lines Matching refs:U
62 template <typename T, typename U> struct copy_const { using type = U; };
63 template <typename T, typename U> struct copy_const<T const, U> { using type = U const; };
64 template <typename T, typename U> using copy_const_t = typename copy_const<T, U>::type;
66 template <typename T, typename U> struct copy_cv { using type = U; };
67 template <typename T, typename U> struct copy_cv<T const, U> { using type = U const; };
68 template <typename T, typename U> struct copy_cv<T volatile, U> { using type = U volatile; };
69 template <typename T, typename U> struct copy_cv<T const volatile, U> { using type = U const volati…
70 template <typename T, typename U> using copy_cv_t = typename copy_cv<T, U>::type;
72 template <typename T, typename U>
74 decltype(declval<T>() == declval<U>()),
75 decltype(declval<T>() != declval<U>())
78 template <typename T, typename U>
80 decltype(declval<T>() < declval<U>()),
81 decltype(declval<T>() > declval<U>()),
82 decltype(declval<T>() >= declval<U>()),
83 decltype(declval<T>() <= declval<U>())
214 …template <typename U, typename Policy, typename = detail::enable_if_t<detail::is_convertible_v<U*,…
216 bounded_ptr(bounded_ptr<U, Policy> const & other)
229 …template <typename U, typename Policy, typename = detail::enable_if_t<detail::is_convertible_v<U*,…
231 operator=(bounded_ptr<U, Policy> const& other)
491 template <typename T_, typename U, typename Policy>
492 friend bounded_ptr<T_, Policy> reinterpret_pointer_cast(bounded_ptr<U, Policy> const&) noexcept;
494 …template <typename U, typename P> friend struct bounded_ptr; // for cross-type operations and conv…
512 template <typename T, typename P1, typename U, typename P2, typename = detail::WhenComparable<T*, U…
514 operator==(bounded_ptr<T, P1> const& a, bounded_ptr<U, P2> const& b)
519 template <typename T, typename P1, typename U, typename P2, typename = detail::WhenComparable<T*, U…
521 operator!=(bounded_ptr<T, P1> const& a, bounded_ptr<U, P2> const& b)
526 template <typename T, typename P, typename U, typename = detail::WhenComparable<T*, U*> >
528 operator==(bounded_ptr<T, P> const& a, U* b)
533 template <typename T, typename P, typename U, typename = detail::WhenComparable<T*, U*> >
535 operator==(U* a, bounded_ptr<T, P> const& b)
540 template <typename T, typename P, typename U, typename = detail::WhenComparable<T*, U*> >
542 operator!=(bounded_ptr<T, P> const& a, U* b)
547 template <typename T, typename P, typename U, typename = detail::WhenComparable<T*, U*> >
549 operator!=(U* a, bounded_ptr<T, P> const& b)
597 template <typename T, typename U, typename P1, typename P2, typename = detail::WhenOrderable<T*, U*…
599 operator<(bounded_ptr<T, P1> const& a, bounded_ptr<U, P2> const& b)
604 template <typename T, typename U, typename P1, typename P2, typename = detail::WhenOrderable<T*, U*…
606 operator<=(bounded_ptr<T, P1> const& a, bounded_ptr<U, P2> const& b)
611 template <typename T, typename U, typename P1, typename P2, typename = detail::WhenOrderable<T*, U*…
613 operator>(bounded_ptr<T, P1> const& a, bounded_ptr<U, P2> const& b)
618 template <typename T, typename U, typename P1, typename P2, typename = detail::WhenOrderable<T*, U*…
620 operator>=(bounded_ptr<T, P1> const& a, bounded_ptr<U, P2> const& b)
625 template <typename T, typename U, typename P, typename = detail::WhenOrderable<T*, U*> >
627 operator<(T* a, bounded_ptr<U, P> const& b)
632 template <typename T, typename U, typename P, typename = detail::WhenOrderable<T*, U*> >
634 operator<(bounded_ptr<T, P> const& a, U* b)
639 template <typename T, typename U, typename P, typename = detail::WhenOrderable<T*, U*> >
641 operator<=(T* a, bounded_ptr<U, P> const& b)
646 template <typename T, typename U, typename P, typename = detail::WhenOrderable<T*, U*> >
648 operator<=(bounded_ptr<T, P> const& a, U* b)
653 template <typename T, typename U, typename P, typename = detail::WhenOrderable<T*, U*> >
655 operator>(T* a, bounded_ptr<U, P> const& b)
660 template <typename T, typename U, typename P, typename = detail::WhenOrderable<T*, U*> >
662 operator>(bounded_ptr<T, P> const& a, U* b)
667 template <typename T, typename U, typename P, typename = detail::WhenOrderable<T*, U*> >
669 operator>=(T* a, bounded_ptr<U, P> const& b)
674 template <typename T, typename U, typename P, typename = detail::WhenOrderable<T*, U*> >
676 operator>=(bounded_ptr<T, P> const& a, U* b)
681 template <typename T, typename U>
683 reinterpret_pointer_cast(U* p) noexcept
695 template <typename T, typename U, typename Policy>
697 reinterpret_pointer_cast(bounded_ptr<U, Policy> const& p) noexcept