# Generator

Category: functors | Component type: concept

### Description

A Generator is a kind of function object: an object that is called as if it were an ordinary C++ function. A Generator is called with no arguments.

### Refinement of

Assignable

### Associated types

Result type | The type returned when the Generator is called

### Notation

`F` | A type that is a model of Generator
`Result` | The result type of `F`
`f` | Object of type `F`

### Definitions

The range of a Generator is the set of all possible value that it may return.

### Valid expressions

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

### Expression semantics

Name | Expression | Precondition | Semantics | Postcondition
--- | --- | --- | --- | ---
Function call | `f()` |  | Returns some value of type `Result` [1] | The return value is in `f`'s range.

### Complexity guarantees

### Invariants

### Models

- `Result (*)()`

### Notes

[1] Two different invocations of `f` may return different results: a Generator may refer to local state, perform I/O, and so on. The expression `f()` is permitted to change `f`'s state; `f` might, for example, represent a pseudo-random number generator.

### See also

Function Object overview, Unary Function, Binary Function, Adaptable Generator

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