Spec-Zone.ru › Ada 95
Справочник по Ada 95

Приложение К

(информативное)

Явно определенные атрибуты языка

В этом приложении обобщены определения явно определенных атрибутов языка, приведенные в других разделах.
P'Access
Для префикса P, обозначающего подпрограмму:
P'Access возвращает значение доступа, которое обозначает подпрограмму, обозначаемую P. Тип P'Access — это тип доступа к подпрограмме (S), определяемый ожидаемым типом. См. 3.10.2.
X'Access
Для префикса X, обозначающего алиасированное представление объекта:
X'Access возвращает значение доступа, обозначающее объект, обозначаемый X. Тип X'Access — это тип доступа к объекту, определяемый ожидаемым типом. Ожидаемый тип должен быть типом общего доступа. См. 3.10.2.
X'Address
Для префикса X, обозначающего объект, программную единицу или метку:
Обозначает адрес первого из элементов памяти, выделенных для X. Для программной единицы или метки это значение относится к машинному коду, связанному с соответствующим телом или оператором. Значение этого атрибута имеет тип System.Address. См. 13.3.
S'Adjacent
Для каждого подтипа S вещественного типа T:
S'Adjacent обозначает функцию со следующей спецификацией:
function S'Adjacent (X, Towards : T)
return T
Если Towards = X, функция возвращает X; в противном случае она возвращает машинное число типа T, смежное с X в направлении Towards, если такое машинное число существует. Если результат будет за пределами базового диапазона S, возбуждается Constraint_Error. Когда T'Signed_Zeros истинно, результат нуля имеет знак X. Когда Towards равно нулю, его знак не влияет на результат. См. A.5.3.
S'Aft
Для каждого подтипа S фиксированного типа:
S'Aft возвращает количество десятичных цифр, необходимых после десятичной точки, чтобы вместить delta подтипа S, если delta подтипа S не больше 0,1, в противном случае атрибут возвращает значение один. (S'Aft — это наименьшее положительное целое N, для которого (10**N)*S'Delta больше или равно одному.) Значение этого атрибута имеет тип universal_integer. См. 3.5.10.
X'Alignment
Для префикса X, обозначающего подтип или объект:
Адрес объекта, выделенного под управлением реализации, является целым кратным Выравнивания объекта (то есть Адрес по модулю Выравнивания равен нулю). Смещение компонента записи является кратным Выравниванию компонента. Для объекта, не выделенного под управлением реализации (то есть импортированного, выделенного пользователем-определённым распределяющим устройством, адрес которого был указан или обозначаемый значением доступа, возвращаемым экземпляром Unchecked_Conversion), реализация может предположить, что Адрес является целым кратным его Выравниванию. Реализация не должна предполагать более строгое выравнивание.
Значение этого атрибута имеет тип universal_integer и неотрицательно; ноль означает, что объект не обязательно выровнен на границе элемента памяти. См. 13.3.
S'Base
Для каждого скалярного подтипа S:
S'Base обозначает не ограниченный подтип типа S. Этот неограниченный подтип называется базовым подтипом типа. См. 3.5.
S'Bit_Order
Для каждого конкретного подтипа записи S:
Обозначает порядок битов для типа S. Значение этого атрибута имеет тип System.Bit_Order. См. 13.5.3.
P'Body_Version
Для префикса P, статически обозначающего программную единицу:
Возвращает значение предопределенного типа String, которое идентифицирует версию единицы компиляции, содержащей тело (но не любые подмодули) программной единицы. См. E.3.
T'Callable
Для префикса T, имеющего тип задачи (после любого неявного разыменования):
Возвращает значение True, когда задача, обозначаемая T, является выполнимой, и False в противном случае; См. 9.9.
E'Caller
Для префикса E, обозначающего entry_declaration:
Возвращает значение типа Task_ID, которое идентифицирует задачу, вызов которой сейчас обслуживается. Использование этого атрибута разрешено только внутри entry_body или accept_statement, соответствующих entry_declaration, обозначаемому E. См. C.7.1.
S'Ceiling
Для каждого подтипа S вещественного типа T:
S'Ceiling обозначает функцию со следующей спецификацией:
function S'Ceiling (X : T)
return T
Функция возвращает значение Ceiling(X), т. е. наименьшее (наименее положительное) целое значение, большее или равное X. Когда X равно нулю, результат имеет знак X; в противном случае нулевой результат имеет отрицательный знак, когда S'Signed_Zeros истинно. См. A.5.3.
S'Class
Для каждого подтипа S не помеченного частного типа, полное представление которого помечено:
Обозначает подтип класса, соответствующий полному представлению S. Этот атрибут разрешен только с начала частной части, в которой объявлено полное представление, до объявления полного представления. После полного представления может быть использован атрибут Class полного представления. См. 7.3.1.
S'Class
Для каждого подтипа S помеченного типа T (конкретного или класса):
S'Class обозначает подтип класса с типом (называемый T'Class в этом международном стандарте) для класса, укоренённого в T (или если S уже обозначает подтип класса, тогда S'Class совпадает с S).
S'Class не ограничен. Однако, если S ограничен, то значения S'Class — только те, которые, при преобразовании в тип T, принадлежат S. См. 3.9.
X'Component_Size
Для префикса X, обозначающего подтип массива или массив объекта (после любого неявного разыменования):
Обозначает размер в битах компонентов типа X. Значение этого атрибута имеет тип universal_integer. См. 13.3.
S'Compose
Для каждого подтипа S вещественного типа T:
S'Compose обозначает функцию со следующей спецификацией:
function S'Compose (Fraction : T;
Exponent : universal_integer)
return T
Пусть v — значение Fraction · T'Machine_RadixExponent-k, где k — нормализованный показатель степени Fraction. Если v — машинное число типа T или если |v| >= T'Model_Small, функция возвращает v; в противном случае она возвращает одно из машинных чисел типа T, смежных с v. Constraint_Error, при необходимости, возбуждается, если v находится за пределами базового диапазона S. Результат нуля имеет знак Fraction, когда S'Signed_Zeros истинно. См. A.5.3.
A'Constrained
Для префикса A, являющегося типом с дискриминаторами (после любого неявного разыменования):
Возвращает значение True, если A обозначает константу, значение или ограниченную переменную, и False в противном случае. См. 3.7.2.
S'Copy_Sign
Для каждого подтипа S вещественного типа T:
S'Copy_Sign обозначает функцию со следующей спецификацией:
function S'Copy_Sign (Value, Sign : T)
return T
Если значение Value отлично от нуля, функция возвращает результат, абсолютная величина которого равна Value, а знак — Sign; в противном случае она возвращает ноль. Constraint_Error, при необходимости, возбуждается, если результат находится за пределами базового диапазона S. Результат нуля имеет знак Sign, когда S'Signed_Zeros истинно. См. A.5.3.
E'Count
Для префикса E, обозначающего вход задачи или защищённого блока:
Возвращает количество вызовов, ожидающих в очереди на вход E текущего экземпляра блока. Значение этого атрибута имеет тип universal_integer. См. 9.9.
S'Definite
Для префикса S, обозначающего формальный неопределённый подтип:
S'Definite возвращает True, если фактический подтип, соответствующий S, определён; в противном случае возвращает False. Значение этого атрибута имеет предопределённый тип Boolean. См. 12.5.1.
S'Delta
Для каждого подтипа S фиксированного типа:
S'Delta обозначает delta подтипа S фиксированного типа. Значение этого атрибута имеет тип universal_real. См. 3.5.10.
S'Denorm
Для каждого подтипа S вещественного типа T:
Возвращает значение True, если каждое значение, выразимое в форме
± мантисса · T'Machine_RadixT'Machine_Emin
где мантисса — ненулевая T'Machine_Mantissa-значная дробь в системе счисления T'Machine_Radix, первая цифра которой равна нулю, является машинным числом (см. 3.5.7) типа T; возвращает значение False в противном случае. Значение этого атрибута имеет предопределённый тип Boolean. См. A.5.3.
S'Digits
Для каждого подтипа с фиксированной запятой S:
S'Digits обозначает цифры подтипа с фиксированной запятой S, что соответствует количеству десятичных цифр, которые представимы в объектах подтипа. Значение этого атрибута имеет тип universal_integer. См. 3.5.10.
S'Digits
Для каждого подтипа с плавающей запятой S:
S'Digits обозначает требуемую десятичную точность для подтипа S. Значение этого атрибута имеет тип universal_integer. См. 3.5.8.
S'Exponent
Для каждого подтипа S типа с плавающей запятой T:
S'Exponent обозначает функцию со следующим описанием:
function S'Exponent (X : T)
return universal_integer
Функция возвращает нормализованный порядок X. См. A.5.3.
S'External_Tag
Для каждого подтипа S помеченного типа T (специфического или класса):
S'External_Tag обозначает внешнее строковое представление для S'Tag; оно имеет предопределённый тип String. External_Tag может быть указан для конкретного помеченного типа с помощью attribute_definition_clause; выражение такого предложения должно быть статическим. По умолчанию внешнее представление тега определяется реализацией. См. 3.9.2 и 13.13.2. См. 13.3.
A'First
Для префикса A типа массива (после любого неявного разыменования) или обозначает ограниченный подтип массива:
A'First обозначает нижнюю границу первого диапазона индексов; его тип — соответствующий тип индекса. См. 3.6.2.
S'First
Для каждого скалярного подтипа S:
S'First обозначает нижнюю границу диапазона S. Значение этого атрибута имеет тип S. См. 3.5.
A'First(N)
Для префикса A типа массива (после любого неявного разыменования) или обозначает ограниченный подтип массива:
A'First(N) обозначает нижнюю границу N-го диапазона индексов; его тип — соответствующий тип индекса. См. 3.6.2.
R.C'First_Bit
Для компонента C составного объекта R, не являющегося массивом:
Обозначает смещение, начиная с первого из элементов хранения, занимаемых C, первого бита, занимаемого C. Это смещение измеряется в битах. Первый бит элемента хранения имеет номер ноль. Значение этого атрибута имеет тип universal_integer. См. 13.5.2.
S'Floor
Для каждого подтипа S типа с плавающей запятой T:
S'Floor обозначает функцию со следующим описанием:
function S'Floor (X : T)
return T
Функция возвращает значение Floor(X), т.е. наибольшее (наибольшее по модулю) целое значение, меньшее или равное X. Когда X равно нулю, результат имеет знак X; в противном случае результат имеет положительный знак. См. A.5.3.
S'Fore
Для каждого подтипа с фиксированной запятой S:
S'Fore возвращает минимальное количество символов, необходимых перед десятичной точкой для десятичного представления любого значения подтипа S, предполагая, что представление не включает показатель степени, но включает префикс из одного символа, который является либо знаком минус, либо пробелом. (Это минимальное число не включает избыточные нули или подчеркивания и, по крайней мере, равно 2.) Значение этого атрибута имеет тип universal_integer. См. 3.5.10.
S'Fraction
Для каждого подтипа S типа с плавающей запятой T:
S'Fraction обозначает функцию со следующим описанием:
function S'Fraction (X : T)
return T
Функция возвращает значение X · T'Machine_Radix-k, где k — нормализованный порядок X. Ноль, который может произойти только когда X равно нулю, имеет знак X. См. A.5.3.
T'Identity
Для префикса T типа задачи (после любого неявного разыменования):
Возвращает значение типа Task_ID, которое идентифицирует задачу, обозначаемую T. См. C.7.1.
E'Identity
Для префикса E, обозначающего исключение:
E'Identity возвращает уникальную идентификацию исключения. Тип этого атрибута — Exception_Id. См. 11.4.1.
S'Image
Для каждого скалярного подтипа S:
S'Image обозначает функцию со следующим описанием:
function S'Image(Arg : S'Base)
return String
Функция возвращает изображение значения Arg в виде строки. См. 3.5.
S'Class'Input
Для каждого подтипа S'Class класса T'Class:
S'Class'Input обозначает функцию со следующим описанием:
function S'Class'Input(
Stream : access Ada.Streams.Root_Stream_Type'Class)
return T'Class
Сначала считывает внешний тег из Stream и определяет соответствующий внутренний тег (вызывая Tags.Internal_Tag(String'Input(Stream)) — см. 3.9) и затем перенаправляет вызов на подпрограмму, обозначенную атрибутом Input соответствующего типа, идентифицированного внутренним тегом; возвращает этот результат. См. 13.13.2.
S'Input
Для каждого подтипа S конкретного типа T:
S'Input обозначает функцию со следующим описанием:
function S'Input(
Stream : access Ada.Streams.Root_Stream_Type'Class)
return T
S'Input считывает и возвращает одно значение из Stream, используя любые границы или дискриминанты, записанные соответствующим S'Output, чтобы определить, сколько считывать. См. 13.13.2.
A'Last
Для префикса A типа массива (после любого неявного разыменования) или обозначает ограниченный подтип массива:
A'Last обозначает верхнюю границу первого диапазона индексов; его тип — соответствующий тип индекса. См. 3.6.2.
S'Last
Для каждого скалярного подтипа S:
S'Last обозначает верхнюю границу диапазона S. Значение этого атрибута имеет тип S. См. 3.5.
A'Last(N)
Для префикса A типа массива (после любого неявного разыменования) или обозначает ограниченный подтип массива:
A'Last(N) обозначает верхнюю границу N-го диапазона индексов; его тип — соответствующий тип индекса. См. 3.6.2.
R.C'Last_Bit
Для компонента C составного объекта R, не являющегося массивом:
Обозначает смещение, начиная с первого из элементов хранения, занимаемых C, последнего бита, занимаемого C. Это смещение измеряется в битах. Значение этого атрибута имеет тип universal_integer. См. 13.5.2.
S'Leading_Part
Для каждого подтипа S типа с плавающей запятой T:
S'Leading_Part обозначает функцию со следующим описанием:
function S'Leading_Part (X : T;
Radix_Digits : universal_integer)
return T
Пусть v — значение T'Machine_Radixk-Radix_Digits, где k — нормализованный порядок X. Функция возвращает значение
  • Floor(X/v) · v, когда X неотрицательно и Radix_Digits положительно;
  • Ceiling(X/v) · v, когда X отрицательно и Radix_Digits положительно.
Constraint_Error поднимается, когда Radix_Digits равно нулю или отрицательно. Ноль, который может произойти только когда X равно нулю, имеет знак X. См. A.5.3.
A'Length
Для префикса A типа массива (после любого неявного разыменования) или обозначает ограниченный подтип массива:
A'Length обозначает количество значений первого диапазона индексов (ноль для пустого диапазона); его тип — universal_integer. См. 3.6.2.
A'Length(N)
Для префикса A типа массива (после любого неявного разыменования) или обозначает ограниченный подтип массива:
A'Length(N) обозначает количество значений диапазона N-го индекса (ноль для нулевого диапазона); его тип — universal_integer. См. 3.6.2.
S'Machine
Для каждого подтипа S типа с плавающей точкой T:
S'Machine обозначает функцию со следующим описанием:
function S'Machine (X : T)
return T
Если X — машинный номер типа T, функция возвращает X; в противном случае она возвращает значение, полученное путем округления или усечения X до одного из смежных машинных чисел типа T. Ошибка Constraint_Error возникает, если округление или усечение X до точности машинных чисел приводит к значению, выходящему за пределы базового диапазона S. Результат с нулём имеет знак X, когда S'Signed_Zeros истинно. См. A.5.3.
S'Machine_Emax
Для каждого подтипа S типа с плавающей точкой T:
Возвращает наибольшее (наибольшее положительное) значение exponent, такое что каждое значение, выразимое в канонической форме (для типа T), имеющее mantissa из T'Machine_Mantissa цифр, является машинным числом (см. 3.5.7) типа T. Это атрибут возвращает значение типа universal_integer. См. A.5.3.
S'Machine_Emin
Для каждого подтипа S типа с плавающей точкой T:
Возвращает наименьшее (наибольшее отрицательное) значение exponent, такое что каждое значение, выразимое в канонической форме (для типа T), имеющее mantissa из T'Machine_Mantissa цифр, является машинным числом (см. 3.5.7) типа T. Этот атрибут возвращает значение типа universal_integer. См. A.5.3.
S'Machine_Mantissa
Для каждого подтипа S типа с плавающей точкой T:
Возвращает наибольшее значение p, такое что каждое значение, выразимое в канонической форме (для типа T), имеющее p-значную mantissa и exponent между T'Machine_Emin и T'Machine_Emax, является машинным числом (см. 3.5.7) типа T. Этот атрибут возвращает значение типа universal_integer. См. A.5.3.
S'Machine_Overflows
Для каждого подтипа S типа с фиксированной точкой T:
Возвращает значение True, если переполнение и деление на ноль обнаружены и сообщаются путём поднятия Constraint_Error для каждой предопределённой операции, которая возвращает результат типа T; в противном случае возвращает False. Значение этого атрибута имеет предопределённый тип Boolean. См. A.5.4.
S'Machine_Overflows
Для каждого подтипа S типа с плавающей точкой T:
Возвращает значение True, если переполнение и деление на ноль обнаружены и сообщаются путём поднятия Constraint_Error для каждой предопределённой операции, которая возвращает результат типа T; в противном случае возвращает значение False. Значение этого атрибута имеет предопределённый тип Boolean. См. A.5.3.
S'Machine_Radix
Для каждого подтипа S типа с фиксированной точкой T:
Возвращает основание аппаратного представления типа T. Значение этого атрибута имеет тип universal_integer. См. A.5.4.
S'Machine_Radix
Для каждого подтипа S типа с плавающей точкой T:
Возвращает основание аппаратного представления типа T. Значение этого атрибута имеет тип universal_integer. См. A.5.3.
S'Machine_Rounds
Для каждого подтипа S типа с фиксированной точкой T:
Возвращает значение True, если округление выполняется для неточных результатов каждой предопределённой операции, которая возвращает результат типа T; в противном случае возвращает значение False. Значение этого атрибута имеет предопределённый тип Boolean. См. A.5.4.
S'Machine_Rounds
Для каждого подтипа S типа с плавающей точкой T:
Возвращает значение True, если округление выполняется для неточных результатов каждой предопределённой операции, которая возвращает результат типа T; в противном случае возвращает значение False. Значение этого атрибута имеет предопределённый тип Boolean. См. A.5.3.
S'Max
Для каждого скалярного подтипа S:
S'Max обозначает функцию со следующим описанием:
function S'Max(Left, Right : S'Base)
return S'Base
Функция возвращает большее из двух значений параметров. См. 3.5.
S'Max_Size_In_Storage_Elements
Для каждого подтипа S:
Обозначает максимальное значение для Size_In_Storage_Elements, которое будет запрошено через Allocate для типа доступа, назначенным подтипом которого является S. Значение этого атрибута имеет тип universal_integer. См. 13.11.1.
S'Min
Для каждого скалярного подтипа S:
S'Min обозначает функцию со следующим описанием:
function S'Min(Left, Right : S'Base)
return S'Base
Функция возвращает меньшее из двух значений параметров. См. 3.5.
S'Model
Для каждого подтипа S типа с плавающей точкой T:
S'Model обозначает функцию со следующим описанием:
function S'Model (X : T)
return T
Если Приложение по численных методам не поддерживается, смысл этого атрибута определяется реализацией; см. G.2.2 для определения, применимого к реализациям, поддерживающим Приложение по численных методам. См. A.5.3.
S'Model_Emin
Для каждого подтипа S типа с плавающей точкой T:
Если Приложение по численных методам не поддерживается, этот атрибут возвращает значение, определяемое реализацией, которое больше или равно значению T'Machine_Emin. См. G.2.2 для дополнительных требований, применимых к реализациям, поддерживающим Приложение по численных методам. Значение этого атрибута имеет тип universal_integer. См. A.5.3.
S'Model_Epsilon
Для каждого подтипа S типа с плавающей точкой T:
Возвращает значение T'Machine_Radix1 - T'Model_Mantissa. Значение этого атрибута имеет тип universal_real. См. A.5.3.
S'Model_Mantissa
Для каждого подтипа S типа с плавающей точкой T:
Если Приложение по численных методам не поддерживается, этот атрибут возвращает значение, определяемое реализацией, которое больше или равно Ceiling(d · log(10) / log(T'Machine_Radix)) + 1, где d — запрошенная десятичная точность T, и меньше или равно значению T'Machine_Mantissa. См. G.2.2 для дополнительных требований, применимых к реализациям, поддерживающим Приложение по численных методам. Значение этого атрибута имеет тип universal_integer. См. A.5.3.
S'Model_Small
Для каждого подтипа S типа с плавающей точкой T:
Возвращает значение T'Machine_RadixT'Model_Emin - 1. Значение этого атрибута имеет тип universal_real. См. A.5.3.
S'Modulus
Для каждого модульного подтипа S:
S'Modulus возвращает модуль типа S, как значение типа universal_integer. См. 3.5.4.
S'Class'Output
Для каждого подтипа S'Class класса типа T'Class:
S'Class'Output обозначает процедуру со следующим описанием:
procedure S'Class'Output(
Stream : access Ada.Streams.Root_Stream_Type'Class;
Item : in T'Class)
Сначала записывает внешний тег Item в Stream (вызвать String'Output(Tags.External_Tag(Item'Tag) — см. 3.9) и затем переходит к подпрограмме, обозначаемой атрибутом Output специфического типа, определённого тегом. См. 13.13.2.
S'Output
Для каждого подтипа S конкретного типа T:
S'Output обозначает процедуру со следующим описанием:
procedure S'Output(
Stream : access Ada.Streams.Root_Stream_Type'Class;
Item : in T)
S'Output записывает значение Item в Stream, включая любые границы или дискриминанты. См. 13.13.2.
D'Partition_ID
Для префикса D, обозначающего объявление на уровне библиотеки, за исключением объявления или внутри объявленного чистого библиотечного блока:
Обозначает значение типа universal_integer, которое идентифицирует разбиение, в котором D был разработан. Если D обозначает объявление библиотечного блока интерфейса удалённого вызова (см. E.2.3), данное разбиение является тем, где тело D было разработано. См. E.1.
S'Pos
Для каждого дискретного подтипа S:
S'Pos обозначает функцию со следующим описанием:
function S'Pos(Arg : S'Base)
return universal_integer
Эта функция возвращает номер позиции значения Arg в виде значения типа universal_integer. См. 3.5.5.
R.C'Position
Для компонента C составного, не массивно-го объекта R:
Обозначает то же значение, что и R.C'Address - R'Address. Значение этого атрибута имеет тип universal_integer. См. 13.5.2.
S'Pred
Для каждого скалярного подтипа S:
S'Pred обозначает функцию со следующим описанием:
function S'Pred(Arg : S'Base)
return S'Base
Для типа перечисления функция возвращает значение, номер позиции которого на единицу меньше, чем у значения Arg; если такого значения типа нет, возникает ошибка Constraint_Error. Для целочисленного типа функция возвращает результат вычитания единицы из значения Arg. Для типа с фиксированной точкой функция возвращает результат вычитания small из значения Arg. Для типа с плавающей точкой функция возвращает машинное число (как определено в 3.5.7) непосредственно ниже значения Arg; если такого машинного числа нет, возникает ошибка Constraint_Error. См. 3.5.
A'Range
Для префикса A, который является типом массива (после любого неявного разыменования) или обозначает ограниченный подтип массива:
A'Range эквивалентно диапазону A'First .. A'Last, за исключением того, что префикс A оценивается только один раз. См. 3.6.2.
S'Range
Для каждого скалярного подтипа S:
S'Range эквивалентен диапазону S'First .. S'Last. См. 3.5.
A'Range(N)
Для префикса A, который является типом массива (после любого неявного разыменования) или обозначает ограниченный подтип массива:
A'Range(N) эквивалентно диапазону A'First(N) .. A'Last(N), за исключением того, что префикс A оценивается только один раз. См. 3.6.2.
S'Class'Read
Для каждого подтипа S'Class типа класса T'Class:
S'Class'Read обозначает процедуру со следующим описанием:
procedure S'Class'Read(
Stream : access Ada.Streams.Root_Stream_Type'Class;
Item : out T'Class)
Вызывается в подпрограмму, обозначенную атрибутом Read для конкретного типа, идентифицированного тегом Item. См. 13.13.2.
S'Read
Для каждого подтипа S конкретного типа T:
S'Read обозначает процедуру со следующим описанием:
procedure S'Read(
Stream : access Ada.Streams.Root_Stream_Type'Class;
Item : out T)
S'Read считывает значение Item из Stream. См. 13.13.2.
S'Remainder
Для каждого подтипа S типа с плавающей точкой T:
S'Remainder обозначает функцию со следующим описанием:
function S'Remainder (X, Y : T)
return T
Для ненулевого Y, пусть v — значение X - n · Y, где n — целое число, ближайшее к точному значению X/Y; если |n - X/Y| = 1/2, то n выбирается чётным. Если v — машинное число типа T, функция возвращает v; в противном случае — ноль. Если Y равно нулю, возникает ошибка Constraint_Error. Результат с нулевым значением имеет знак X, когда S'Signed_Zeros имеет значение True. См. A.5.3.
S'Round
Для каждого десятичного подтипа с фиксированной точкой S:
S'Round обозначает функцию со следующим описанием:
function S'Round(X : universal_real)
return S'Base
Функция возвращает значение, полученное путем округления X (в сторону от 0, если X находится посредине между двумя значениями типа S). См. 3.5.10.
S'Rounding
Для каждого подтипа S типа с плавающей точкой T:
S'Rounding обозначает функцию со следующим описанием:
function S'Rounding (X : T)
return T
Функция возвращает целое значение, ближайшее к X, округляя в сторону от нуля, если X находится ровно посередине между двумя целыми числами. Результат с нулевым значением имеет знак X, если S'Signed_Zeros имеет значение True. См. A.5.3.
S'Safe_First
Для каждого подтипа S типа с плавающей точкой T:
Возвращает нижнюю границу безопасного диапазона (см. 3.5.7) типа T. Если Приложение по числовым данным не поддерживается, значение этого атрибута определяется реализацией; см. G.2.2 для определения, применимого к реализациям, поддерживающим Приложение по числовым данным. Значение этого атрибута имеет тип universal_real. См. A.5.3.
S'Safe_Last
Для каждого подтипа S типа с плавающей точкой T:
Возвращает верхнюю границу безопасного диапазона (см. 3.5.7) типа T. Если Приложение по числовым данным не поддерживается, значение этого атрибута определяется реализацией; см. G.2.2 для определения, применимого к реализациям, поддерживающим Приложение по числовым данным. Значение этого атрибута имеет тип universal_real. См. A.5.3.
S'Scale
Для каждого десятичного подтипа с фиксированной точкой S:
S'Scale обозначает масштаб подтипа S, определенный как значение N такое, что S'Delta = 10.0**(-N). Масштаб указывает положение точки относительно наиболее значимых цифр справа значений подтипа S. Значение этого атрибута имеет тип universal_integer. См. 3.5.10.
S'Scaling
Для каждого подтипа S типа с плавающей точкой T:
S'Scaling обозначает функцию со следующим описанием:
function S'Scaling (X : T;
Adjustment : universal_integer)
return T
Пусть v — значение X · T'Machine_RadixAdjustment. Если v — машинное число типа T или |v| >= T'Model_Small, функция возвращает v; в противном случае — любое из машинных чисел типа T, смежных с v. Возможна ошибка Constraint_Error, если v выходит за базовый диапазон S. Результат с нулевым значением имеет знак X, когда S'Signed_Zeros имеет значение True. См. A.5.3.
S'Signed_Zeros
Для каждого подтипа S типа с плавающей точкой T:
Возвращает значение True, если аппаратное представление типа T имеет возможность представлять как положительные, так и отрицательные нули, которые генерируются и используются предопределёнными операциями типа T, как указано в IEC 559:1989; в противном случае — значение False. Значение этого атрибута имеет предопределенный тип Boolean. См. A.5.3.
S'Size
Для каждого подтипа S:
Если S определен, обозначает размер (в битах), который реализация выберет для следующих объектов подтипа S:
  • Компонента записи подтипа S, когда тип записи упакован.
  • Формального параметра экземпляра Unchecked_Conversion, который преобразует из подтипа S в какой-либо другой подтип.
Если S неопределен, значение определяется реализацией. Значение этого атрибута имеет тип universal_integer. См. 13.3.
X'Size
Для префикса X, который обозначает объект:
Обозначает размер в битах представления объекта. Значение этого атрибута имеет тип universal_integer. См. 13.3.
S'Small
Для каждого подтипа с фиксированной точкой S:
S'Small обозначает small типа S. Значение этого атрибута имеет тип universal_real. См. 3.5.10.
S'Storage_Pool
Для каждого подтипа с доступом S:
Обозначает пул памяти типа S. Тип этого атрибута — Root_Storage_Pool'Class. См. 13.11.
S'Storage_Size
Для каждого подтипа с доступом S:
Возвращает результат вызова Storage_Size(S'Storage_Pool), который предназначен для измерения количества элементов памяти, зарезервированных для пула. Тип этого атрибута — universal_integer. См. 13.11.
T'Storage_Size
Для префикса T, обозначающего объект задачи (после любого неявного разыменования):
Обозначает количество элементов памяти, зарезервированных для задачи. Значение этого атрибута имеет тип universal_integer. Размер Storage_Size включает размер стека задачи, если таковой имеется. Язык не указывает, включает ли он другую память, связанную с задачей (например, «блок управления задачей», используемый некоторыми реализациями). См. 13.3.
S'Succ
Для каждого скалярного подтипа S:
S'Succ обозначает функцию со следующим описанием:
function S'Succ(Arg : S'Base)
return S'Base
Для типа перечисления функция возвращает значение, порядковый номер которого на единицу больше, чем у значения Arg; Constraint_Error генерируется, если такого значения типа не существует. Для целочисленного типа функция возвращает результат прибавления единицы к значению Arg. Для типа с фиксированной точкой функция возвращает результат прибавления small к значению Arg. Для типа с плавающей точкой функция возвращает машинное число (как определено в 3.5.7) сразу выше значения Arg; Constraint_Error генерируется, если такого машинного числа нет. См. 3.5.
X'Tag
Для префикса X, который является помеченным типом класса (после любого неявного разыменования):
X'Tag обозначает метку X. Значение этого атрибута имеет тип Tag. См. 3.9.
S'Tag
Для каждого подтипа S помеченного типа T (специфического или универсального):
S'Tag обозначает метку типа T (или, если T универсальный, метку корневого типа соответствующего класса). Значение этого атрибута имеет тип Tag. См. 3.9.
T'Terminated
Для префикса T, который является типом задачи (после любого неявного разыменования):
Возвращает значение True, если задача, обозначаемая T, завершена, и False в противном случае. Значение этого атрибута имеет предопределенный тип Boolean. См. 9.9.
S'Truncation
Для каждого подтипа S типа с плавающей точкой T:
S'Truncation обозначает функцию со следующим описанием:
function S'Truncation (X : T)
return T
Функция возвращает значение Ceiling(X), если X отрицательно, и Floor(X) в противном случае. Результат равен нулю и имеет знак X, когда S'Signed_Zeros равно True. См. A.5.3.
S'Unbiased_Rounding
Для каждого подтипа S типа с плавающей точкой T:
S'Unbiased_Rounding обозначает функцию со следующим описанием:
function S'Unbiased_Rounding (X : T)
return T
Функция возвращает целое значение, ближайшее к X, округляя к ближайшему четному числу, если X лежит ровно посередине между двумя целыми числами. Результат равен нулю и имеет знак X, когда S'Signed_Zeros равно True. См. A.5.3.
X'Unchecked_Access
Для префикса X, обозначающего вид объекта с алиасом:
Все правила и семантика, применимые к X'Access (см. 3.10.2), также применяются к X'Unchecked_Access, за исключением того, что для целей правил и проверок доступности считается, что X объявлен непосредственно внутри пакета библиотеки. См. 13.10.
S'Val
Для каждого дискретного подтипа S:
S'Val обозначает функцию со следующим описанием:
function S'Val(Arg : universal_integer)
return S'Base
Эта функция возвращает значение типа S, порядковый номер которого равен значению Arg. См. 3.5.5.
X'Valid
Для префикса X, обозначающего скалярный объект (после любого неявного разыменования):
Возвращает True тогда и только тогда, когда объект, обозначаемый X, нормальный и имеет допустимое представление. Значение этого атрибута имеет предопределенный тип Boolean. См. 13.9.2.
S'Value
Для каждого скалярного подтипа S:
S'Value обозначает функцию со следующим описанием:
function S'Value(Arg : String)
return S'Base
Эта функция возвращает значение, заданное изображением значения в виде строки, игнорируя пробелы в начале и конце. См. 3.5.
P'Version
Для префикса P, который статически обозначает программный блок:
Возвращает значение предопределенного типа String, которое идентифицирует версию единицы компиляции, содержащей объявление программного блока. См. E.3.
S'Wide_Image
Для каждого скалярного подтипа S:
S'Wide_Image обозначает функцию со следующим описанием:
function S'Wide_Image(Arg : S'Base)
return Wide_String
Функция возвращает изображение значения Arg, то есть последовательность символов, представляющих значение в форме отображения. См. 3.5.
S'Wide_Value
Для каждого скалярного подтипа S:
S'Wide_Value обозначает функцию со следующим описанием:
function S'Wide_Value(Arg : Wide_String)
return S'Base
Эта функция возвращает значение, заданное изображением значения в виде Wide_String, игнорируя пробелы в начале и конце. См. 3.5.
S'Wide_Width
Для каждого скалярного подтипа S:
S'Wide_Width обозначает максимальную длину Wide_String, возвращаемую S'Wide_Image для всех значений подтипа S. Обозначает ноль для подтипа с пустым диапазоном. Его тип — universal_integer. См. 3.5.
S'Width
Для каждого скалярного подтипа S:
S'Width обозначает максимальную длину строки String, возвращаемую S'Image для всех значений подтипа S. Обозначает ноль для подтипа с пустым диапазоном. Его тип — universal_integer. См. 3.5.
S'Class'Write
Для каждого подтипа S'Class универсального типа T'Class:
S'Class'Write обозначает процедуру со следующим описанием:
procedure S'Class'Write(
Stream : access Ada.Streams.Root_Stream_Type'Class;
Item : in T'Class)
Вызывает подпрограмму, обозначаемую атрибутом Write специфического типа, идентифицируемого меткой Item. См. 13.13.2.
S'Write
Для каждого подтипа S специфического типа T:
S'Write обозначает процедуру со следующим описанием:
procedure S'Write(
Stream : access Ada.Streams.Root_Stream_Type'Class;
Item : in T)
S'Write записывает значение Item в Stream. См. 13.13.2.


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API