# Unary Function

Category: functors | Component type: concept

### Description

A Unary Function is a kind of function object: an object that is called as if it were an ordinary C++ function. A Unary Function is called with a single argument.

### Refinement of

Assignable

### Associated types

Argument type | The type of the Unary Function's argument.
Result type | The type returned when the Unary Function is called

### Notation

`F` | A type that is a model of Unary Function
`X` | The argument type of `F`
`Result` | The result type of `F`
`f` | Object of type `F`
`x` | Object of type `X`

### Definitions

The domain of a Unary Function is the set of all permissible values for its argument.

The range of a Unary Function is the set of all possible values that it may return.

### Valid expressions

Name | Expression | Type requirements | Return type
--- | --- | --- | ---
Function call | `f(x)` |  | `Result`

### Expression semantics

Name | Expression | Precondition | Semantics | Postcondition
--- | --- | --- | --- | ---
Function call | `f(x)` | `x` is in `f`'s domain | Calls `f` with `x` as an argument, and returns a value of type `Result` [1] | The return value is in `f`'s range

### Complexity guarantees

### Invariants

### Models

- `Result (*)(X)`

### Notes

[1] Two different invocations of `f` may return different results, even if `f` is called with the same arguments both times. A Unary Function may refer to local state, perform I/O, and so on. The expression `f(x)` is permitted to change `f`'s state.

### See also

Function Object overview, Generator, Binary Function Adaptable Unary Function

Copyright © 1999 Silicon Graphics, Inc. All Rights Reserved. TrademarkInformation