Ада-95. Компилятор GNAT



              

Атрибуты типов определенные в реализации компилятора GNAT - часть 5


   

'Epsilon

 - 

Предусмотрен для обеспечения совместимости с Ada 83.

   

S'Fixed_Value

 - 

где S: вещественный тип с фиксированной точкой.

Обозначает функцию, которая имеет следующую спецификацию:

function S'Fixed_Value

(Arg : Universal_Integer) return S;

Возвращаемое значение V - это вещественное значение с фиксированной точкой, подобное:

V = Arg * S'Small

Таким образом, это эквивалентно: сначала, преобразованию аргумента в значение целочисленного типа, используемого для представления S, а затем, выполнению непроверяемого преобразования в вещественный тип с фиксированной точкой.

Первоначально, этот атрибут был предназначен для реализации функций ввода/вывода для значений вещественного типа с фиксированной точкой.

   

T'Has_Discriminants

 - 

где T: тип.

Возвращенное значение типа Boolean будет True

в случае когда тип T имеет дискриминант, и False - в обратном случае.

Предполагается использование этого атрибута совместно с описаниями настраиваемых модулей.

Если атрибут используется с приватным настраиваемым типом, то он индицирует имеет ли фактический тип дискриминант.

   

'Img

 - 

Этот атрибут отличается от стандартного атрибута 'Image

тем, что он может быть использован как с объектами, так и с типами.

В обоих случаях он возвращает 'Image для подтипа объекта. Это удобно для отладки:

Put_Line ("X = " & X'Img);

будет иметь такой же смысл, что и более "многословная" запись:

Put_Line ("X = " & type'Image (X));

где type - это подтип объекта X.

   

S'Integer_Value

 - 

где S: целочисленный тип.

Обозначает функцию, которая имеет следующую спецификацию:

function S'Integer_Value

(Arg : Universal_Fixed) return S;

Возвращаемое значение V подобно:

Arg = V * type'Small

Таким образом, это эквивалентно: сначала, выполнению непроверяемого преобразования из вещественного типа с фиксированной точкой в соответствующий ему тип реализации, а затем, преобразование результата в целочисленный тип назначения.




Содержание  Назад  Вперед