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

Приложение К

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

Атрибуты, определённые языком

В этом приложении обобщаются определения атрибутов, определённых языком, приведённые в других разделах.
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 равен True, результат равен нулю со знаком 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.
S'Alignment

Для каждого подтипа S:
Значение этого атрибута имеет тип universal_integer и неотрицательно.
Для объекта X подтипа S, если S'Alignment не равен нулю, то X'Alignment является ненулевым целым кратным S'Alignment, если не указано иное пунктом представления. См. 13.3.
X'Alignment
Для префикса X, обозначающего объект:
Значение этого атрибута имеет тип universal_integer и неотрицательно; ноль означает, что объект необязательно выровнен по границе элемента памяти. Если X'Alignment не равен нулю, то X выровнен по границе единицы памяти, и X'Address является целым кратным X'Alignment (то есть, остаток от деления Address на Alignment равен нулю).
Этот абзац был удалён. См. 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, обозначающего объявление_входной_точки:
Возвращает значение типа Task_Id, которое идентифицирует задачу, вызов которой в настоящее время обрабатывается. Использование этого атрибута разрешено только внутри тела_входной_точки или выполняющего_заявление, соответствующего объявлению_входной_точки, обозначаемому 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 равен True. См. 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 равен True. См. A.5.3.
A'Constrained
Для префикса A, являющегося типом с дискриминатором (после любого неявного разыменования):
Возвращает значение True, если A обозначает константу, значение или ограниченную переменную, и False в противном случае. См. 3.7.2.
S'Copy_Sign
Для каждого подтипа S типа с плавающей точкой T:
S'Copy_Sign обозначает функцию со следующим описанием:
END_OF_DOCUMENT_MARKER
function S'Copy_Sign (Value, Sign : T)
return T
Если значение Value отлично от нуля, функция возвращает результат, модуль которого равен модулю Value, а знак — знаку Sign; в противном случае она возвращает ноль. Constraint_Error может быть поднят (необязательно), если результат выходит за пределы базового диапазона S. Результат с нулевым значением имеет знак Sign, когда S'Signed_Zeros равно True. См. 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 может быть указан для конкретного помеченного типа с помощью описания_атрибута; выражение такого описания должно быть статическим. По умолчанию внешнее представление тега определяется реализацией. См. 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, до первого бита, занимаемого 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 : not null access Ada.Streams.Root_Stream_Type'Class)
return T'Class
Сначала считывает внешний тег из Stream и определяет соответствующий внутренний тег (вызывая Tags.Descendant_Tag(String'Input(Stream), S'Tag), что может вызвать Tag_Error — см. 3.9), а затем переходит к подпрограмме, обозначаемой атрибутом Input конкретного типа, идентифицированного внутренним тегом; возвращает этот результат. Если конкретный тип, идентифицированный внутренним тегом, не покрыт T'Class или является абстрактным, поднимается Constraint_Error. См. 13.13.2.
S'Input
Для каждого подтипа S конкретного типа T:
S'Input обозначает функцию со следующим описанием:
function S'Input(
Stream : not null 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 составного, не массивногo объекта R:
Если для составного типа применяется порядок битов по умолчанию, и если описание компонента указывает расположение C, обозначает значение, заданное для последнего бита описания компонента; в противном случае, обозначает смещение от начала первого из элементов памяти, занимаемых 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:
Возвращает наибольшее (наибольшее положительное) значение показатель_степени, такое что каждое значение, выразимое в канонической форме (для типа T), имеющее мантиссу из T'Machine_Mantissa цифр, является машинным числом (см. 3.5.7) типа T. Этот атрибут возвращает значение типа universal_integer. См. A.5.3.
S'Machine_Emin

Для каждого подтипа S типа с плавающей точкой T:
Возвращает наименьшее (наибольшее отрицательное) значение показатель_степени, такое что каждое значение, выразимое в канонической форме (для типа T), имеющее мантиссу из T'Machine_Mantissa цифр, является машинным числом (см. 3.5.7) типа T. Этот атрибут возвращает значение типа universal_integer. См. A.5.3.
S'Machine_Mantissa

Для каждого подтипа S типа с плавающей точкой T:
Возвращает наибольшее значение p, такое что каждое значение, выразимое в канонической форме (для типа T), имеющее p-значную мантиссу и показатель_степени между 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_Rounding

Для каждого подтипа S типа с плавающей точкой T:
S'Machine_Rounding обозначает функцию со следующим описанием:
function S'Machine_Rounding (X : T)
return T
Функция возвращает целое значение, ближайшее к X. Если X находится точно посередине между двумя целыми числами, одно из этих целых чисел возвращается, но которое из них возвращается, не определено. Нулевой результат имеет знак X, когда S'Signed_Zeros равен True. Эта функция предоставляет доступ к поведению округления, которое наиболее эффективно на целевом процессоре. См. 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. Для типа с дискриминантами доступа, если реализация выделяет память для корасширения в том же пуле, что и объект, имеющий дискриминант доступа, то это учитывает все вызовы Allocate, которые могут быть выполнены для выделения памяти для таких корасширений. Значение этого атрибута имеет тип universal_integer. См. 13.11.1.
S'Min
Для каждого скалярного подтипа S:
S'Min обозначает функцию со следующим описанием:
function S'Min(Left, Right : S'Base)
return S'Base
Функция возвращает меньшее из значений двух параметров. См. 3.5.
S'Mod
Для каждого модулярного подтипа S:
S'Mod обозначает функцию со следующим описанием:
function S'Mod (Arg : universal_integer)
return S'Base
Эта функция возвращает Arg mod S'Modulus, как значение типа S. См. 3.5.4.
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 : not null access Ada.Streams.Root_Stream_Type'Class;
Item : in T'Class)
Вначале записывает внешний тег Item в Stream (вызванием String'Output(Stream, Tags.External_Tag(Item'Tag)) — см. 3.9), а затем выполняет пересылку подпрограмме, обозначаемой атрибутом Output конкретного типа, определенного тегом. Tag_Error генерируется, если тег Item идентифицирует тип, объявленный на уровне доступности глубже, чем уровень S. См. 13.13.2.
S'Output
Для каждого подтипа S конкретного типа T:
S'Output обозначает процедуру со следующим описанием:
procedure S'Output(
Stream : not null 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:
Если применяется нестандартный порядок битов к типу составного объекта и если описания компонента указывает расположение C, обозначает значение, заданное для позиции описания компонента; в противном случае обозначает то же значение, что и 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.
P'Priority

Для префикса P, обозначающего защищённый объект:
Обозначает неалиасовый компонент защищенного объекта P. Этот компонент имеет тип System.Any_Priority и его значение - приоритет P. P'Priority обозначает переменную тогда и только тогда, когда P обозначает переменную. Ссылка на этот атрибут должна появляться только внутри тела P. См. D.5.2.
A'Range
Для префикса A типа массива (после любого неявного разыменования) или обозначает ограниченный подтип массива:
A'Range эквивалентно A'First .. A'Last, за исключением того, что префикс A оценивается только один раз. См. 3.6.2.
S'Range
Для каждого скалярного подтипа S:
Диапазон S'Range эквивалентен диапазону 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 : not null 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 : not null 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; в противном случае — ноль. Ошибка Constraint_Error возникает, если Y равно нулю. Результат с нулём имеет знак 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. Если дополнение Numerics не поддерживается, значение этого атрибута определяется реализацией; см. G.2.2 для определения, применимого к реализациям, поддерживающим дополнение Numerics. Значение этого атрибута имеет тип universal_real. См. A.5.3.
S'Safe_Last
Для каждого подтипа S типа с плавающей точкой T:
Возвращает верхнюю границу безопасного диапазона (см. 3.5.7) типа T. Если дополнение Numerics не поддерживается, значение этого атрибута определяется реализацией; см. G.2.2 для определения, применимого к реализациям, поддерживающим дополнение Numerics. Значение этого атрибута имеет тип 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. Размер хранилища включает размер стека задачи, если таковой имеется. Язык не определяет, включает ли он или нет другое хранилище, связанное с задачей (например, «блок управления задачей», используемый некоторыми реализациями). См. 13.3.
S'Stream_Size

Для каждого подтипа S элементарного типа T:
Обозначает количество битов, занимаемых в потоке элементами подтипа S. Следовательно, количество элементов потока, необходимых для каждого элемента элементарного типа T, составляет:
T'Stream_Size / Ada.Streams.Stream_Element'Size
Значение этого атрибута имеет тип universal_integer и является кратным Stream_Element'Size. См. 13.13.2.
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 в виде Wide_String. См. 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_Wide_Image

Для каждого скалярного подтипа S:
S'Wide_Wide_Image обозначает функцию со следующим определением:
function S'Wide_Wide_Image(Arg : S'Base)
return Wide_Wide_String
Функция возвращает изображение значения Arg, то есть последовательность символов, представляющих значение в виде для отображения. См. 3.5.
S'Wide_Wide_Value

Для каждого скалярного подтипа S:
S'Wide_Wide_Value обозначает функцию со следующим определением:
function S'Wide_Wide_Value(Arg : Wide_Wide_String)
return S'Base
Эта функция возвращает значение, заданное изображением значения в виде Wide_Wide_String, игнорируя любые ведущие или хвостовые пробелы. См. 3.5.
S'Wide_Wide_Width

Для каждого скалярного подтипа S:
S'Wide_Wide_Width обозначает максимальную длину Wide_Wide_String, возвращаемой S'Wide_Wide_Image для всех значений подтипа S. Она обозначает ноль для подтипа с пустым диапазоном. Её тип — universal_integer. См. 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 : not null 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 : not null access Ada.Streams.Root_Stream_Type'Class;
Item : in T)
S'Write записывает значение Item в Stream. См. 13.13.2.


Spec-Zone.ru

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