Contents Index Search Previous Next
6.6 Overloading of Operators
is a function whose designator
is an operator_symbol
like other functions, may be overloaded.
Name Resolution Rules
Each use of a unary or binary operator is equivalent
to a function_call with function_prefix
being the corresponding operator_symbol,
and with (respectively) one or two positional actual parameters being
the operand(s) of the operator (in order).
of a unary or binary operator shall have one or two parameters, respectively.
A generic function instantiation whose designator
is an operator_symbol is only allowed
if the specification of the generic function has the corresponding number
are not allowed for the parameters of an operator (whether the operator
is declared with an explicit subprogram_specification
or by a generic_instantiation).
An explicit declaration of "/=" shall
not have a result type of the predefined type Boolean.
A declaration of "=" whose result type
is Boolean implicitly declares a declaration of "/=" that gives
the complementary result.
8 The operators "+"
and "-" are both unary and binary operators, and hence may
be overloaded with both one- and two-parameter functions.
Examples of user-defined
function "+" (Left, Right : Matrix) return Matrix;
function "+" (Left, Right : Vector) return Vector;
-- assuming that A, B, and C are of the type Vector
-- the following two statements are equivalent:
A := B + C;
A := "+"(B, C);
Contents Index Search Previous Next Legal