[refwrap.const] (original) (raw)
20 General utilities library [utilities]
20.14 Function objects [function.objects]
20.14.6 Class template reference_wrapper [refwrap]
20.14.6.2 Constructors and destructor [refwrap.const]
template<class U> constexpr reference_wrapper(U&& u) noexcept(_see below_);
Let FUN denote the exposition-only functionsvoid FUN(T&) noexcept;void FUN(T&&) = delete;
Constraints: The expression FUN(declval<U>()) is well-formed andis_same_v<remove_cvref_t<U>, reference_wrapper> is false.
Effects: Creates a variable ras if by T& r = std::forward<U>(u), then constructs a reference_wrapper object that stores a reference to r.
Remarks: The expression inside noexceptis equivalent to noexcept(FUN(declval<U>())).
constexpr reference_wrapper(const reference_wrapper& x) noexcept;
Effects: Constructs a reference_wrapper object that stores a reference to x.get().