Files
2025-10-25 03:02:53 +03:00

2.2 KiB

[refwrap.common.ref]

22 General utilities library [utilities]

22.10 Function objects [function.objects]

22.10.6 Class template reference_wrapper [refwrap]

🔗

namespace std {templateconstexpr bool is-ref-wrapper = false; // exposition onlytemplateconstexpr bool is-ref-wrapper<reference_wrapper> = true; template<class R, class T, class RQ, class TQ>concept ref-wrap-common-reference-exists-with = // exposition only**is-ref-wrapper &&requires { typename common_reference_t<typename R::type&, TQ>; } &&convertible_to<RQ, common_reference_t<typename R::type&, TQ>>; template<class R, class T, template class RQual, template class TQual>requires (ref-wrap-common-reference-exists-with<R, T, RQual, TQual> &&ref-wrap-common-reference-exists-with<T, R, TQual, RQual>)struct basic_common_reference<R, T, RQual, TQual> {using type = common_reference_t<typename R::type&, TQual>; }; template<class T, class R, template class TQual, template class RQual>requires (ref-wrap-common-reference-exists-with<R, T, RQual, TQual> &&ref-wrap-common-reference-exists-with<T, R, TQual, RQual>)struct basic_common_reference<T, R, TQual, RQual> {using type = common_reference_t<typename R::type&, TQual>; };}