[func.wrap.func.inv]

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

## 22.10 Function objects [[function.objects]](function.objects#func.wrap.func.inv)

### 22.10.17 Polymorphic function wrappers [[func.wrap]](func.wrap#func.inv)

#### 22.10.17.3 Class template function [[func.wrap.func]](func.wrap.func#inv)

#### 22.10.17.3.5 Invocation [func.wrap.func.inv]

[ð](#lib:function,invocation)

`R operator()(ArgTypes... args) const;
`

[1](#1)

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

*Returns*: *INVOKE*<R>(f, std​::​forward<ArgTypes>(args)...) ([[func.require]](func.require "22.10.4 Requirements")),
where f is the target object ([[func.def]](func.def "22.10.3 Definitions")) of *this[.](#1.sentence-1)

[2](#2)

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

*Throws*: bad_function_call if !*this; otherwise, any
exception thrown by the target object[.](#2.sentence-1)
