Category: functors Component type: concept


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


Associated types

Result type The type returned when the Generator is called


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


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




[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