Справочник по Ada 2005
3.2.3 Классификация операций
Статическая семантика
Операция действует над типом T, если она возвращает значение типа T, если у неё есть операнд, ожидаемый тип которого (см. 8.6) равен T, или если у неё есть параметр доступа или тип результата доступа (см. 6.1), обозначающий T. Предопределённый оператор или другая операция, определённая языком, например, присваивание или проверка принадлежности, которая действует над типом, называется предопределённой операцией типа. Примитивные операции типа — это предопределённые операции типа плюс любые пользовательские примитивные подпрограммы.
Примитивные подпрограммы конкретного типа определяются следующим образом:
- Предопределённые операторы типа (см. 4.5);
- Для производного типа, унаследованные (см. 3.4) пользовательские подпрограммы;
- Для типа перечисления, литералы перечисления (которые рассматриваются как безаргументные функции — см. 3.5.1);
- Для конкретного типа, объявленного непосредственно внутри спецификации_пакета, любые подпрограммы (кроме литералов перечисления), явно объявленные непосредственно внутри той же спецификации_пакета и действующие над типом;
- Для неформального типа, любые подпрограммы, не охваченные выше, которые явно объявлены непосредственно в той же области объявления, что и тип, и которые переопределяют (см. 8.3) другие неявно объявленные примитивные подпрограммы типа.
Примитивная подпрограмма, у которой указатель — символ_оператора, называется примитивным оператором.