# C++ named requirements: FunctionObject

From cppreference.com
< cpp‎ | named req

A FunctionObject type is the type of an object that can be used on the left of the function call operator.

### Requirements

The type `T` satisfies FunctionObject if

- The type `T` satisfies std::is_object, and

Given

- `f`, a value of type `T` or `const T`
- `args`, suitable argument list, which may be empty

The following expressions must be valid:

Expression | Requirements
--- | ---
f(args) | performs a function call

### Notes

Functions and references to functions are not function object types, but can be used where function object types are expected due to function-to-pointer implicit conversion.

### Standard library

- All pointers to functions satisfy this requirement.
- All Function objects defined in `<functional>`
- Some return types of functions of `<functional>`

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/named_req/FunctionObject&oldid=105382"