Init
This commit is contained in:
13
cppdraft/refwrap/common/ref.md
Normal file
13
cppdraft/refwrap/common/ref.md
Normal file
@@ -0,0 +1,13 @@
|
||||
[refwrap.common.ref]
|
||||
|
||||
# 22 General utilities library [[utilities]](./#utilities)
|
||||
|
||||
## 22.10 Function objects [[function.objects]](function.objects#refwrap.common.ref)
|
||||
|
||||
### 22.10.6 Class template reference_wrapper [[refwrap]](refwrap#common.ref)
|
||||
|
||||
#### 22.10.6.8 common_reference related specializations [refwrap.common.ref]
|
||||
|
||||
[ð](#lib:basic_common_reference)
|
||||
|
||||
namespace std {template<class T>constexpr bool *is-ref-wrapper* = false; // *exposition only*template<class T>constexpr bool *is-ref-wrapper*<reference_wrapper<T>> = true; template<class R, class T, class RQ, class TQ>concept [*ref-wrap-common-reference-exists-with*](#concept:ref-wrap-common-reference-exists-with "22.10.6.8 common_reference related specializations [refwrap.common.ref]") = // *exposition only**is-ref-wrapper*<R> &&requires { typename common_reference_t<typename R::type&, TQ>; } &&[convertible_to](concept.convertible#concept:convertible_to "18.4.4 Concept convertible_to [concept.convertible]")<RQ, common_reference_t<typename R::type&, TQ>>; template<class R, class T, template<class> class RQual, template<class> class TQual>requires ([*ref-wrap-common-reference-exists-with*](#concept:ref-wrap-common-reference-exists-with "22.10.6.8 common_reference related specializations [refwrap.common.ref]")<R, T, RQual<R>, TQual<T>> &&<T, R, TQual<T>, RQual<R>>)struct basic_common_reference<R, T, RQual, TQual> {using type = common_reference_t<typename R::type&, TQual<T>>; }; template<class T, class R, template<class> class TQual, template<class> class RQual>requires ([*ref-wrap-common-reference-exists-with*](#concept:ref-wrap-common-reference-exists-with "22.10.6.8 common_reference related specializations [refwrap.common.ref]")<R, T, RQual<R>, TQual<T>> &&<T, R, TQual<T>, RQual<R>>)struct basic_common_reference<T, R, TQual, RQual> {using type = common_reference_t<typename R::type&, TQual<T>>; };}
|
||||
Reference in New Issue
Block a user