|
| |
|
| Category : functors | | Component type: concept |
Description
A Binary Function is a kind of functors : an object that is called as if it were an ordinary C++ function. A Binary Function is called with two arguments.
Refinement of
Assignable
Associated types
| First argument type | The type of the Binary Function's first argument. |
| Second argument type | The type of the Binary Function's second argument. |
| Result type | The type returned when the Binary Function is called |
Notation
F | A type that is a model of BinaryFunction |
X | The first argument type of F |
Y | The second argument type of F |
Result | The result type of F |
f | Object of type F |
x | Object of type X |
y | Object of type Y |
Definitions
The domain of a Binary Function is the set of all ordered pairs (x, y) that are permissible values for its arguments.
The range of a Binary Function is the set of all possible value that it may return.
Valid expressions
| Name | Expression | Type requirements | Return type |
| Function call | f(x,y) | | Result |
Expression semantics
| Name | Expression | Precondition | Semantics | Postcondition |
| Function call | f(x,y) | The ordered pair (x,y) is in f's domain | Calls f with x and y as arguments, and returns a value of type Result [1] | The return value is in f's range |
Complexity guarantees
Invariants
Models
Notes
[1] Two different invocations of f may return different results, even if f is called with the same arguments both times. A Binary Function may refer to local state, perform I/O, and so on. The expression f(x,y) is permitted to change f's state.
See also
functors, Generator, UnaryFunction AdaptableBinaryFunction