[refwrap.invoke]

# 22 General utilities library [[utilities]](./#utilities)

## 22.10 Function objects [[function.objects]](function.objects#refwrap.invoke)

### 22.10.6 Class template reference_wrapper [[refwrap]](refwrap#invoke)

#### 22.10.6.5 Invocation [refwrap.invoke]

[ð](#lib:operator(),reference_wrapper)

`template<class... ArgTypes>
  constexpr invoke_result_t<T&, ArgTypes...>
    operator()(ArgTypes&&... args) const noexcept(is_nothrow_invocable_v<T&, ArgTypes...>);
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L11808)

*Mandates*: T is a complete type[.](#1.sentence-1)

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L11812)

*Returns*: *INVOKE*(get(), std​::​forward<ArgTypes>(args)...) ([[func.require]](func.require "22.10.4 Requirements"))[.](#2.sentence-1)
