Contents Index Search Related Documents Previous Next
Annex K
(informative)
Language-Defined Attributes
1
This annex summarizes the
definitions given elsewhere of the language-defined attributes.
2
- P'Access
-
For a prefix P that denotes a subprogram:
3
- P'Access yields an access value
that designates the subprogram denoted by P. The type of P'Access is
an access-to-subprogram type (S), as determined by the expected
type. See 3.10.2.
4
- X'Access
-
For a prefix X that denotes an aliased
view of an object:
5
- X'Access yields an access value
that designates the object denoted by X. The type of X'Access is an access-to-object
type, as determined by the expected type. The expected type shall be
a general access type. See 3.10.2.
6/1
- X'Address
-
For a prefix X that denotes an object,
program unit, or label:
7
- Denotes the address of the first
of the storage elements allocated to X. For a program unit or label,
this value refers to the machine code associated with the corresponding
body or statement. The value of
this attribute is of type System.Address. See 13.3.
8
- S'Adjacent
-
For every subtype S of a floating point type T:
9
- S'Adjacent
denotes a function with the following specification:
10
function S'Adjacent (X, Towards : T)
return T
11
- If Towards
= X, the function yields X; otherwise, it yields the machine
number of the type T adjacent to X in the direction of
Towards, if that machine number exists. If
the result would be outside the base range of S, Constraint_Error is
raised. When T'Signed_Zeros is True, a zero result has the sign
of X. When Towards is zero, its sign has no bearing on
the result. See A.5.3.
12
- S'Aft
-
For every fixed point subtype S:
13
- S'Aft yields the number of decimal
digits needed after the decimal point to accommodate the delta
of the subtype S, unless the delta of the subtype S is greater
than 0.1, in which case the attribute yields the value one. (S'Aft is
the smallest positive integer N for which (10**N)*S'Delta is greater
than or equal to one.) The value of this attribute is of the type universal_integer.
See 3.5.10.
14
- S'Alignment
-
For every subtype S:
15
- The value of this attribute
is of type universal_integer, and nonnegative.
15.1/2
- For an object X of subtype S,
if S'Alignment is not zero, then X'Alignment is a nonzero integral multiple
of S'Alignment unless specified otherwise by a representation item. See
13.3.
16/1
- X'Alignment
-
For a prefix X that denotes an object:
17
- The value of this attribute
is of type universal_integer, and nonnegative; zero means that
the object is not necessarily aligned on a storage element boundary.
If X'Alignment is not zero, then X is aligned on a storage unit boundary
and X'Address is an integral multiple of X'Alignment (that is, the Address
modulo the Alignment is zero).
18/2
- This paragraph was deleted.
See 13.3.
19
- S'Base
-
For every scalar subtype S:
20
- S'Base denotes an unconstrained
subtype of the type of S. This unconstrained subtype is called the base
subtype of the type. See 3.5.
21
- S'Bit_Order
-
For every specific record subtype S:
22
- Denotes the bit ordering for
the type of S. The value of this attribute is of type System.Bit_Order.
See 13.5.3.
23/1
- P'Body_Version
-
For a prefix P that statically denotes
a program unit:
24
- Yields a value of the predefined
type String that identifies the version of the compilation unit that
contains the body (but not any subunits) of the program unit. See E.3.
25/2
- T'Callable
-
For a prefix T that is of a task
type or task interface type (after any implicit dereference):
26
- Yields the value True when the
task denoted by T is callable, and False otherwise; See 9.9.
27
- E'Caller
-
For a prefix E that denotes an entry_declaration:
28
- Yields a value of the type Task_Id
that identifies the task whose call is now being serviced. Use of this
attribute is allowed only inside an entry_body
or accept_statement corresponding
to the entry_declaration denoted
by E. See C.7.1.
29
- S'Ceiling
-
For every subtype S of a floating point type T:
30
- S'Ceiling
denotes a function with the following specification:
31
function S'Ceiling (X : T)
return T
32
- The function yields the value
Ceiling(X), i.e., the smallest (most negative) integral
value greater than or equal to X. When X is zero, the result
has the sign of X; a zero result otherwise has a negative sign
when S'Signed_Zeros is True. See A.5.3.
33
- S'Class
-
For every subtype S of an untagged private type whose full view is tagged:
34
- Denotes the class-wide subtype
corresponding to the full view of S. This attribute is allowed only from
the beginning of the private part in which the full view is declared,
until the declaration of the full view. After the full view, the Class
attribute of the full view can be used. See 7.3.1.
35
- S'Class
-
For every subtype S of a tagged type T (specific or class-wide):
36
- S'Class denotes a subtype of
the class-wide type (called T'Class in this International Standard)
for the class rooted at T (or if S already denotes a class-wide
subtype, then S'Class is the same as S).
37
- S'Class
is unconstrained. However, if S is constrained, then the values of S'Class
are only those that when converted to the type T belong to S.
See 3.9.
38/1
- X'Component_Size
-
For a prefix X that denotes an array
subtype or array object (after any implicit dereference):
39
- Denotes the size in bits of
components of the type of X. The value of this attribute is of type universal_integer.
See 13.3.
40
- S'Compose
-
For every subtype S of a floating point type T:
41
- S'Compose
denotes a function with the following specification:
42
function S'Compose (Fraction : T;
Exponent : universal_integer)
return T
43
- Let v
be the value Fraction · T'Machine_RadixExponent–k,
where k is the normalized exponent of Fraction. If v
is a machine number of the type T, or if |v| ≥ T'Model_Small,
the function yields v; otherwise, it yields either one of the
machine numbers of the type T adjacent to v. Constraint_Error
is optionally raised if v is outside the base range of S. A zero
result has the sign of Fraction when S'Signed_Zeros is True. See
A.5.3.
44
- A'Constrained
-
For a prefix A that is of a discriminated
type (after any implicit dereference):
45
- Yields the value True if A denotes
a constant, a value, or a constrained variable, and False otherwise.
See 3.7.2.
46
- S'Copy_Sign
-
For every subtype S of a floating point type T:
47
- S'Copy_Sign
denotes a function with the following specification:
48
function S'Copy_Sign (Value, Sign : T)
return T
49
- If the value
of Value is nonzero, the function yields a result whose magnitude
is that of Value and whose sign is that of Sign; otherwise,
it yields the value zero. Constraint_Error
is optionally raised if the result is outside the base range of S. A
zero result has the sign of Sign when S'Signed_Zeros is True.
See A.5.3.
50
- E'Count
-
For a prefix E that denotes an entry
of a task or protected unit:
51
- Yields the number of calls presently
queued on the entry E of the current instance of the unit. The value
of this attribute is of the type universal_integer. See 9.9.
52/1
- S'Definite
-
For a prefix S that denotes a formal
indefinite subtype:
53
- S'Definite yields True if the
actual subtype corresponding to S is definite; otherwise it yields False.
The value of this attribute is of the predefined type Boolean. See 12.5.1.
54
- S'Delta
-
For every fixed point subtype S:
55
- S'Delta denotes the delta
of the fixed point subtype S. The value of this attribute is of the type
universal_real. See 3.5.10.
56
- S'Denorm
-
For every subtype S of a floating point type T:
57
- Yields the value True if every
value expressible in the form
± mantissa · T'Machine_RadixT'Machine_Emin
where mantissa is a nonzero T'Machine_Mantissa-digit fraction
in the number base T'Machine_Radix, the first digit of which is
zero, is a machine number (see 3.5.7) of
the type T; yields the value False otherwise. The value of this
attribute is of the predefined type Boolean. See A.5.3.
58
- S'Digits
-
For every decimal fixed point subtype S:
59
- S'Digits denotes the digits
of the decimal fixed point subtype S, which corresponds to the number
of decimal digits that are representable in objects of the subtype. The
value of this attribute is of the type universal_integer. See
3.5.10.
60
- S'Digits
-
For every floating point subtype S:
61
- S'Digits denotes the requested
decimal precision for the subtype S. The value of this attribute is of
the type universal_integer. See 3.5.8.
62
- S'Exponent
-
For every subtype S of a floating point type T:
63
- S'Exponent
denotes a function with the following specification:
64
function S'Exponent (X : T)
return universal_integer
65
- The function yields the normalized
exponent of X. See A.5.3.
66
- S'External_Tag
-
For every subtype S of a tagged type T (specific or class-wide):
67
- S'External_Tag
denotes an external string representation for S'Tag; it is of the predefined
type String. External_Tag may be specified for a specific tagged type
via an attribute_definition_clause;
the expression of such a clause shall be static. The default external
tag representation is implementation defined. See 3.9.2
and 13.13.2. See 13.3.
68/1
- A'First
-
For a prefix A that is of an array
type (after any implicit dereference), or denotes a constrained array
subtype:
69
- A'First denotes the lower bound
of the first index range; its type is the corresponding index type. See
3.6.2.
70
- S'First
-
For every scalar subtype S:
71
- S'First denotes the lower bound
of the range of S. The value of this attribute is of the type of S. See
3.5.
72/1
- A'First(N)
-
For a prefix A that is of an array
type (after any implicit dereference), or denotes a constrained array
subtype:
73
- A'First(N) denotes the lower
bound of the N-th index range; its type is the corresponding index type.
See 3.6.2.
74
- R.C'First_Bit
-
For a component C of a composite, non-array object R:
75/2
- If the nondefault bit ordering
applies to the composite type, and if a component_clause
specifies the placement of C, denotes the value given for the first_bit
of the component_clause; otherwise,
denotes the offset, from the start of the first of the storage elements
occupied by C, of the first bit occupied by C. This offset is measured
in bits. The first bit of a storage element is numbered zero. The value
of this attribute is of the type universal_integer. See 13.5.2.
76
- S'Floor
-
For every subtype S of a floating point type T:
77
- S'Floor
denotes a function with the following specification:
78
function S'Floor (X : T)
return T
79
- The function yields the value
Floor(X), i.e., the largest (most positive) integral value
less than or equal to X. When X is zero, the result has
the sign of X; a zero result otherwise has a positive sign. See
A.5.3.
80
- S'Fore
-
For every fixed point subtype S:
81
- S'Fore yields the minimum number
of characters needed before the decimal point for the decimal representation
of any value of the subtype S, assuming that the representation does
not include an exponent, but includes a one-character prefix that is
either a minus sign or a space. (This minimum number does not include
superfluous zeros or underlines, and is at least 2.) The value of this
attribute is of the type universal_integer. See 3.5.10.
82
- S'Fraction
-
For every subtype S of a floating point type T:
83
- S'Fraction
denotes a function with the following specification:
84
function S'Fraction (X : T)
return T
85
- The function yields the value
X · T'Machine_Radix–k,
where k is the normalized exponent of X. A zero result,
which can only occur when X is zero, has the sign of X.
See A.5.3.
86
- T'Identity
-
For a prefix T that is of a task
type (after any implicit dereference):
87
- Yields a value of the type Task_Id
that identifies the task denoted by T. See C.7.1.
88/1
- E'Identity
-
For a prefix E that denotes an exception:
89
- E'Identity returns the unique
identity of the exception. The type of this attribute is Exception_Id.
See 11.4.1.
90
- S'Image
-
For every scalar subtype S:
91
- S'Image
denotes a function with the following specification:
92
function S'Image(Arg : S'Base)
return String
93/2
- The function returns an image
of the value of Arg as a String. See 3.5.
94
- S'Class'Input
-
For every subtype S'Class of a class-wide type T'Class:
95
- S'Class'Input
denotes a function with the following specification:
96
function S'Class'Input(
Stream : access Ada.Streams.Root_Stream_Type'Class)
return T'Class
97/2
- First reads the external tag
from Stream and determines the corresponding internal tag (by
calling Tags.Descendant_Tag(String'Input(Stream), S'Tag) which
might raise Tag_Error — see 3.9) and
then dispatches to the subprogram denoted by the Input attribute of the
specific type identified by the internal tag; returns that result. If
the specific type identified by the internal tag is not covered by T'Class
or is abstract, Constraint_Error is raised. See 13.13.2.
98
- S'Input
-
For every subtype S of a specific type T:
99
- S'Input
denotes a function with the following specification:
100
function S'Input(
Stream : access Ada.Streams.Root_Stream_Type'Class)
return T
101
- S'Input reads and returns one
value from Stream, using any bounds or discriminants written by
a corresponding S'Output to determine how much to read. See 13.13.2.
102/1
- A'Last
-
For a prefix A that is of an array
type (after any implicit dereference), or denotes a constrained array
subtype:
103
- A'Last denotes the upper bound
of the first index range; its type is the corresponding index type. See
3.6.2.
104
- S'Last
-
For every scalar subtype S:
105
- S'Last denotes the upper bound
of the range of S. The value of this attribute is of the type of S. See
3.5.
106/1
- A'Last(N)
-
For a prefix A that is of an array
type (after any implicit dereference), or denotes a constrained array
subtype:
107
- A'Last(N) denotes the upper
bound of the N-th index range; its type is the corresponding index type.
See 3.6.2.
108
- R.C'Last_Bit
-
For a component C of a composite, non-array object R:
109/2
- If the nondefault bit ordering
applies to the composite type, and if a component_clause
specifies the placement of C, denotes the value given for the last_bit
of the component_clause; otherwise,
denotes the offset, from the start of the first of the storage elements
occupied by C, of the last bit occupied by C. This offset is measured
in bits. The value of this attribute is of the type universal_integer.
See 13.5.2.
110
- S'Leading_Part
-
For every subtype S of a floating point type T:
111
- S'Leading_Part
denotes a function with the following specification:
112
function S'Leading_Part (X : T;
Radix_Digits : universal_integer)
return T
113
- Let v be the value T'Machine_Radixk–Radix_Digits,
where k is the normalized exponent of X. The function yields
the value
114
- Floor(X/v)
· v, when X is nonnegative and Radix_Digits
is positive;
115
- Ceiling(X/v)
· v, when X is negative and Radix_Digits
is positive.
116
- Constraint_Error
is raised when Radix_Digits is zero or negative. A zero result,
which can only occur when X is zero, has the sign of X.
See A.5.3.
117/1
- A'Length
-
For a prefix A that is of an array
type (after any implicit dereference), or denotes a constrained array
subtype:
118
- A'Length denotes the number
of values of the first index range (zero for a null range); its type
is universal_integer. See 3.6.2.
119/1
- A'Length(N)
-
For a prefix A that is of an array
type (after any implicit dereference), or denotes a constrained array
subtype:
120
- A'Length(N) denotes the number
of values of the N-th index range (zero for a null range); its type is
universal_integer. See 3.6.2.
121
- S'Machine
-
For every subtype S of a floating point type T:
122
- S'Machine
denotes a function with the following specification:
123
function S'Machine (X : T)
return T
124
- If X
is a machine number of the type T, the function yields X;
otherwise, it yields the value obtained by rounding or truncating X
to either one of the adjacent machine numbers of the type T. Constraint_Error
is raised if rounding or truncating X to the precision of the
machine numbers results in a value outside the base range of S. A zero
result has the sign of X when S'Signed_Zeros is True. See A.5.3.
125
- S'Machine_Emax
-
For every subtype S of a floating point type T:
126
- Yields the largest (most positive)
value of exponent such that every value expressible in the canonical
form (for the type T), having a mantissa of T'Machine_Mantissa
digits, is a machine number (see 3.5.7) of
the type T. This attribute yields a value of the type universal_integer.
See A.5.3.
127
- S'Machine_Emin
-
For every subtype S of a floating point type T:
128
- Yields the smallest (most negative)
value of exponent such that every value expressible in the canonical
form (for the type T), having a mantissa of T'Machine_Mantissa
digits, is a machine number (see 3.5.7) of
the type T. This attribute yields a value of the type universal_integer.
See A.5.3.
129
- S'Machine_Mantissa
-
For every subtype S of a floating point type T:
130
- Yields the largest value of
p such that every value expressible in the canonical form (for
the type T), having a p-digit mantissa and an exponent
between T'Machine_Emin and T'Machine_Emax, is a machine
number (see 3.5.7) of the type T.
This attribute yields a value of the type universal_integer. See
A.5.3.
131
- S'Machine_Overflows
-
For every subtype S of a fixed point type T:
132
- Yields the value True if overflow
and divide-by-zero are detected and reported by raising Constraint_Error
for every predefined operation that yields a result of the type T;
yields the value False otherwise. The value of this attribute is of the
predefined type Boolean. See A.5.4.
133
- S'Machine_Overflows
-
For every subtype S of a floating point type T:
134
- Yields the value True if overflow
and divide-by-zero are detected and reported by raising Constraint_Error
for every predefined operation that yields a result of the type T;
yields the value False otherwise. The value of this attribute is of the
predefined type Boolean. See A.5.3.
135
- S'Machine_Radix
-
For every subtype S of a fixed point type T:
136
- Yields the radix of the hardware
representation of the type T. The value of this attribute is of
the type universal_integer. See A.5.4.
137
- S'Machine_Radix
-
For every subtype S of a floating point type T:
138
- Yields the radix of the hardware
representation of the type T. The value of this attribute is of
the type universal_integer. See A.5.3.
139
- S'Machine_Rounding
-
For every subtype S of a floating point type T:
140
- S'Machine_Rounding
denotes a function with the following specification:
140.1/2
function S'Machine_Rounding (X : T)
return T
140.2/2
- The function yields the integral
value nearest to X. If X lies exactly halfway between two
integers, one of those integers is returned, but which of them is returned
is unspecified. A zero result has the sign of X when S'Signed_Zeros
is True. This function provides access to the rounding behavior which
is most efficient on the target processor. See A.5.3.
141
- S'Machine_Rounds
-
For every subtype S of a fixed point type T:
142
- Yields the value True if rounding
is performed on inexact results of every predefined operation that yields
a result of the type T; yields the value False otherwise. The
value of this attribute is of the predefined type Boolean. See A.5.4.
143
- S'Machine_Rounds
-
For every subtype S of a floating point type T:
144
- Yields the value True if rounding
is performed on inexact results of every predefined operation that yields
a result of the type T; yields the value False otherwise. The
value of this attribute is of the predefined type Boolean. See A.5.3.
145
- S'Max
-
For every scalar subtype S:
146
- S'Max
denotes a function with the following specification:
147
function S'Max(Left, Right : S'Base)
return S'Base
148
- The function returns the greater
of the values of the two parameters. See 3.5.
149
- S'Max_Size_In_Storage_Elements
-
For every subtype S:
150/2
- Denotes the maximum value for
Size_In_Storage_Elements that could be requested by the implementation
via Allocate for an access type whose designated subtype is S.For a type
with access discriminants, if the implementation allocates space for
a coextension in the same pool as that of the object having the access
discriminant, then this accounts for any calls on Allocate that could
be performed to provide space for such coextensions. The value of this
attribute is of type universal_integer. See 13.11.1.
151
- S'Min
-
For every scalar subtype S:
152
- S'Min
denotes a function with the following specification:
153
function S'Min(Left, Right : S'Base)
return S'Base
154
- The function returns the lesser
of the values of the two parameters. See 3.5.
155
- S'Mod
-
For every modular subtype S:
156
- S'Mod
denotes a function with the following specification:
156.1/2
function S'Mod (Arg : universal_integer)
return S'Base
156.2/2
- This function returns Arg
mod S'Modulus, as a value of the type of S. See 3.5.4.
157
- S'Model
-
For every subtype S of a floating point type T:
158
- S'Model
denotes a function with the following specification:
159
function S'Model (X : T)
return T
160
- If the Numerics Annex is not
supported, the meaning of this attribute is implementation defined; see
G.2.2 for the definition that applies to
implementations supporting the Numerics Annex. See A.5.3.
161
- S'Model_Emin
-
For every subtype S of a floating point type T:
162
- If the Numerics Annex is not
supported, this attribute yields an implementation defined value that
is greater than or equal to the value of T'Machine_Emin. See G.2.2
for further requirements that apply to implementations supporting the
Numerics Annex. The value of this attribute is of the type universal_integer.
See A.5.3.
163
- S'Model_Epsilon
-
For every subtype S of a floating point type T:
164
- Yields the value T'Machine_Radix1
– T'Model_Mantissa. The value of this
attribute is of the type universal_real. See A.5.3.
165
- S'Model_Mantissa
-
For every subtype S of a floating point type T:
166
- If the Numerics Annex is not
supported, this attribute yields an implementation defined value that
is greater than or equal to Ceiling(d · log(10)
/ log(T'Machine_Radix)) + 1, where d is the requested decimal
precision of T, and less than or equal to the value of T'Machine_Mantissa.
See G.2.2 for further requirements that apply
to implementations supporting the Numerics Annex. The value of this attribute
is of the type universal_integer. See A.5.3.
167
- S'Model_Small
-
For every subtype S of a floating point type T:
168
- Yields the value T'Machine_RadixT'Model_Emin
– 1. The value of this attribute is of the
type universal_real. See A.5.3.
169
- S'Modulus
-
For every modular subtype S:
170
- S'Modulus yields the modulus
of the type of S, as a value of the type universal_integer. See
3.5.4.
171
- S'Class'Output
-
For every subtype S'Class of a class-wide type T'Class:
172
- S'Class'Output
denotes a procedure with the following specification:
173
procedure S'Class'Output(
Stream : access Ada.Streams.Root_Stream_Type'Class;
Item : in T'Class)
174/2
- First writes the external tag
of Item to Stream (by calling String'Output(Stream,
Tags.External_Tag(Item'Tag) — see 3.9)
and then dispatches to the subprogram denoted by the Output attribute
of the specific type identified by the tag. Tag_Error is raised if the
tag of Item identifies a type declared at an accessibility level deeper
than that of S. See 13.13.2.
175
- S'Output
-
For every subtype S of a specific type T:
176
- S'Output
denotes a procedure with the following specification:
177
procedure S'Output(
Stream : access Ada.Streams.Root_Stream_Type'Class;
Item : in T)
178
- S'Output writes the value of
Item to Stream, including any bounds or discriminants.
See 13.13.2.
179/1
- D'Partition_Id
-
For a prefix D that denotes a library-level
declaration, excepting a declaration of or within a declared-pure library
unit:
180
- Denotes a value of the type
universal_integer that identifies the partition in which D was
elaborated. If D denotes the declaration of a remote call interface library
unit (see E.2.3) the given partition is the
one where the body of D was elaborated. See E.1.
181
- S'Pos
-
For every discrete subtype S:
182
- S'Pos
denotes a function with the following specification:
183
function S'Pos(Arg : S'Base)
return universal_integer
184
- This function returns the position
number of the value of Arg, as a value of type universal_integer.
See 3.5.5.
185
- R.C'Position
-
For a component C of a composite, non-array object R:
186/2
- If the nondefault bit ordering
applies to the composite type, and if a component_clause
specifies the placement of C, denotes the value given for the position
of the component_clause; otherwise,
denotes the same value as R.C'Address – R'Address. The value of
this attribute is of the type universal_integer. See 13.5.2.
187
- S'Pred
-
For every scalar subtype S:
188
- S'Pred
denotes a function with the following specification:
189
function S'Pred(Arg : S'Base)
return S'Base
190
- For an enumeration
type, the function returns the value whose position number is one less
than that of the value of Arg; Constraint_Error
is raised if there is no such value of the type. For an integer type,
the function returns the result of subtracting one from the value of
Arg. For a fixed point type, the function returns the result of
subtracting small from the value of Arg. For a floating
point type, the function returns the machine number (as defined in 3.5.7)
immediately below the value of Arg; Constraint_Error
is raised if there is no such machine number. See 3.5.
191
- P'Priority
-
For a prefix P that denotes a protected
object:
192
- Denotes a non-aliased component
of the protected object P. This component is of type System.Any_Priority
and its value is the priority of P. A reference to this attribute shall
appear only within the body of P. See D.5.2.
193/1
- A'Range
-
For a prefix A that is of an array
type (after any implicit dereference), or denotes a constrained array
subtype:
194
- A'Range is equivalent to the
range A'First .. A'Last, except that the prefix
A is only evaluated once. See 3.6.2.
195
- S'Range
-
For every scalar subtype S:
196
- S'Range is equivalent to the
range S'First .. S'Last. See 3.5.
197/1
- A'Range(N)
-
For a prefix A that is of an array
type (after any implicit dereference), or denotes a constrained array
subtype:
198
- A'Range(N) is equivalent to
the range A'First(N) .. A'Last(N), except that the prefix
A is only evaluated once. See 3.6.2.
199
- S'Class'Read
-
For every subtype S'Class of a class-wide type T'Class:
200
- S'Class'Read
denotes a procedure with the following specification:
201
procedure S'Class'Read(
Stream : access Ada.Streams.Root_Stream_Type'Class;
Item : out T'Class)
202
- Dispatches to the subprogram
denoted by the Read attribute of the specific type identified by the
tag of Item. See 13.13.2.
203
- S'Read
-
For every subtype S of a specific type T:
204
- S'Read
denotes a procedure with the following specification:
205
procedure S'Read(
Stream : access Ada.Streams.Root_Stream_Type'Class;
Item : out T)
206
- S'Read reads the value of Item
from Stream. See 13.13.2.
207
- S'Remainder
-
For every subtype S of a floating point type T:
208
- S'Remainder
denotes a function with the following specification:
209
function S'Remainder (X, Y : T)
return T
210
- For nonzero
Y, let v be the value X – n ·
Y, where n is the integer nearest to the exact value of
X/Y; if |n – X/Y| = 1/2, then
n is chosen to be even. If v is a machine number of the
type T, the function yields v; otherwise, it yields zero.
Constraint_Error is raised if
Y is zero. A zero result has the sign of X when S'Signed_Zeros
is True. See A.5.3.
211
- S'Round
-
For every decimal fixed point subtype S:
212
- S'Round
denotes a function with the following specification:
213
function S'Round(X : universal_real)
return S'Base
214
- The function returns the value
obtained by rounding X (away from 0, if X is midway between two values
of the type of S). See 3.5.10.
215
- S'Rounding
-
For every subtype S of a floating point type T:
216
- S'Rounding
denotes a function with the following specification:
217
function S'Rounding (X : T)
return T
218
- The function yields the integral
value nearest to X, rounding away from zero if X lies exactly
halfway between two integers. A zero result has the sign of X
when S'Signed_Zeros is True. See A.5.3.
219
- S'Safe_First
-
For every subtype S of a floating point type T:
220
- Yields the lower bound of the
safe range (see 3.5.7) of the type T.
If the Numerics Annex is not supported, the value of this attribute is
implementation defined; see G.2.2 for the
definition that applies to implementations supporting the Numerics Annex.
The value of this attribute is of the type universal_real. See
A.5.3.
221
- S'Safe_Last
-
For every subtype S of a floating point type T:
222
- Yields the upper bound of the
safe range (see 3.5.7) of the type T.
If the Numerics Annex is not supported, the value of this attribute is
implementation defined; see G.2.2 for the
definition that applies to implementations supporting the Numerics Annex.
The value of this attribute is of the type universal_real. See
A.5.3.
223
- S'Scale
-
For every decimal fixed point subtype S:
224
- S'Scale denotes the scale
of the subtype S, defined as the value N such that S'Delta = 10.0**(–N).
The scale indicates the position of the point relative
to the rightmost significant digits of values of subtype S. The value
of this attribute is of the type universal_integer. See 3.5.10.
225
- S'Scaling
-
For every subtype S of a floating point type T:
226
- S'Scaling
denotes a function with the following specification:
227
function S'Scaling (X : T;
Adjustment : universal_integer)
return T
228
- Let v
be the value X · T'Machine_RadixAdjustment.
If v is a machine number of the type T, or if |v|
≥ T'Model_Small, the function yields v; otherwise, it
yields either one of the machine numbers of the type T adjacent
to v. Constraint_Error
is optionally raised if v is outside the base range of S. A zero
result has the sign of X when S'Signed_Zeros is True. See A.5.3.
229
- S'Signed_Zeros
-
For every subtype S of a floating point type T:
230
- Yields the value True if the
hardware representation for the type T has the capability of representing
both positively and negatively signed zeros, these being generated and
used by the predefined operations of the type T as specified in
IEC 559:1989; yields the value False otherwise. The value of this attribute
is of the predefined type Boolean. See A.5.3.
231
- S'Size
-
For every subtype S:
232
- If
S is definite, denotes the size (in bits) that the implementation would
choose for the following objects of subtype S:
233
- A record component of subtype
S when the record type is packed.
234
- The formal parameter of an
instance of Unchecked_Conversion that converts from subtype S to some
other subtype.
235
- If S is indefinite, the meaning
is implementation defined. The value of this attribute is of the type
universal_integer. See 13.3.
236/1
- X'Size
-
For a prefix X that denotes an object:
237
- Denotes the size in bits of
the representation of the object. The value of this attribute is of the
type universal_integer. See 13.3.
238
- S'Small
-
For every fixed point subtype S:
239
- S'Small denotes the small
of the type of S. The value of this attribute is of the type universal_real.
See 3.5.10.
240
- S'Storage_Pool
-
For every access-to-object subtype S:
241
- Denotes the storage pool of
the type of S. The type of this attribute is Root_Storage_Pool'Class.
See 13.11.
242
- S'Storage_Size
-
For every access-to-object subtype S:
243
- Yields the result of calling
Storage_Size(S'Storage_Pool), which is intended to be a measure of the
number of storage elements reserved for the pool. The type of this attribute
is universal_integer. See 13.11.
244/1
- T'Storage_Size
-
For a prefix T that denotes a task
object (after any implicit dereference):
245
- Denotes the number of storage
elements reserved for the task. The value of this attribute is of the
type universal_integer. The Storage_Size includes the size of
the task's stack, if any. The language does not specify whether or not
it includes other storage associated with the task (such as the “task
control block” used by some implementations.) See 13.3.
246
- S'Stream_Size
-
For every subtype S of an elementary type T:
247
- Denotes
the number of bits occupied in a stream by items of subtype S. Hence,
the number of stream elements required per item of elementary type T
is:
247.1/2
T'Stream_Size / Ada.Streams.Stream_Element'Size
247.2/2
- The value of this attribute
is of type universal_integer and is a multiple of Stream_Element'Size.
247.3/2
- Stream_Size may be specified
for first subtypes via an attribute_definition_clause;
the expression of such a clause
shall be static, non-negative, and a multiple of Stream_Element'Size.
See 13.13.2.
248
- S'Succ
-
For every scalar subtype S:
249
- S'Succ
denotes a function with the following specification:
250
function S'Succ(Arg : S'Base)
return S'Base
251
- For an enumeration
type, the function returns the value whose position number is one more
than that of the value of Arg; Constraint_Error
is raised if there is no such value of the type. For an integer type,
the function returns the result of adding one to the value of Arg.
For a fixed point type, the function returns the result of adding small
to the value of Arg. For a floating point type, the function returns
the machine number (as defined in 3.5.7)
immediately above the value of Arg; Constraint_Error
is raised if there is no such machine number. See 3.5.
252
- X'Tag
-
For a prefix X that is of a class-wide
tagged type (after any implicit dereference):
253
- X'Tag denotes the tag of X.
The value of this attribute is of type Tag. See 3.9.
254
- S'Tag
-
For every subtype S of a tagged type T (specific or class-wide):
255
- S'Tag denotes the tag of the
type T (or if T is class-wide, the tag of the root type
of the corresponding class). The value of this attribute is of type Tag.
See 3.9.
256/2
- T'Terminated
-
For a prefix T that is of a task
type or task interface type (after any implicit dereference):
257
- Yields the value True if the
task denoted by T is terminated, and False otherwise. The value of this
attribute is of the predefined type Boolean. See 9.9.
258
- S'Truncation
-
For every subtype S of a floating point type T:
259
- S'Truncation
denotes a function with the following specification:
260
function S'Truncation (X : T)
return T
261
- The function yields the value
Ceiling(X) when X is negative, and Floor(X)
otherwise. A zero result has the sign of X when S'Signed_Zeros
is True. See A.5.3.
262
- S'Unbiased_Rounding
-
For every subtype S of a floating point type T:
263
- S'Unbiased_Rounding
denotes a function with the following specification:
264
function S'Unbiased_Rounding (X : T)
return T
265
- The function yields the integral
value nearest to X, rounding toward the even integer if X
lies exactly halfway between two integers. A zero result has the sign
of X when S'Signed_Zeros is True. See A.5.3.
266
- X'Unchecked_Access
-
For a prefix X that denotes an aliased
view of an object:
267
- All rules and semantics that
apply to X'Access (see 3.10.2) apply also
to X'Unchecked_Access, except that, for the purposes of accessibility
rules and checks, it is as if X were declared immediately within a library
package. See 13.10.
268
- S'Val
-
For every discrete subtype S:
269
- S'Val
denotes a function with the following specification:
270
function S'Val(Arg : universal_integer)
return S'Base
271
- This
function returns a value of the type of S whose position number equals
the value of Arg. See 3.5.5.
272
- X'Valid
-
For a prefix X that denotes a scalar
object (after any implicit dereference):
273
- Yields True if and only if the
object denoted by X is normal and has a valid representation. The value
of this attribute is of the predefined type Boolean. See 13.9.2.
274
- S'Value
-
For every scalar subtype S:
275
- S'Value
denotes a function with the following specification:
276
function S'Value(Arg : String)
return S'Base
277
- This function returns a value
given an image of the value as a String, ignoring any leading or trailing
spaces. See 3.5.
278/1
- P'Version
-
For a prefix P that statically denotes
a program unit:
279
- Yields a value of the predefined
type String that identifies the version of the compilation unit that
contains the declaration of the program unit. See E.3.
280
- S'Wide_Image
-
For every scalar subtype S:
281
- S'Wide_Image
denotes a function with the following specification:
282
function S'Wide_Image(Arg : S'Base)
return Wide_String
283/2
- The function
returns an image of the value of Arg as a Wide_String. See 3.5.
284
- S'Wide_Value
-
For every scalar subtype S:
285
- S'Wide_Value
denotes a function with the following specification:
286
function S'Wide_Value(Arg : Wide_String)
return S'Base
287
- This function returns a value
given an image of the value as a Wide_String, ignoring any leading or
trailing spaces. See 3.5.
288
- S'Wide_Wide_Image
-
For every scalar subtype S:
289
- S'Wide_Wide_Image
denotes a function with the following specification:
289.1/2
function S'Wide_Wide_Image(Arg : S'Base)
return Wide_Wide_String
289.2/2
- The function
returns an image of the value of Arg, that is, a sequence
of characters representing the value in display form. See 3.5.
290
- S'Wide_Wide_Value
-
For every scalar subtype S:
291
- S'Wide_Wide_Value
denotes a function with the following specification:
291.1/2
function S'Wide_Wide_Value(Arg : Wide_Wide_String)
return S'Base
291.2/2
- This function returns a value
given an image of the value as a Wide_Wide_String, ignoring any leading
or trailing spaces. See 3.5.
292
- S'Wide_Wide_Width
-
For every scalar subtype S:
293
- S'Wide_Wide_Width
denotes the maximum length of a Wide_Wide_String returned by S'Wide_Wide_Image
over all values of the subtype S. It denotes zero for a subtype that
has a null range. Its type is universal_integer. See 3.5.
294
- S'Wide_Width
-
For every scalar subtype S:
295
- S'Wide_Width denotes the maximum
length of a Wide_String returned by S'Wide_Image over all values of the
subtype S. It denotes zero for a subtype that has a null range. Its type
is universal_integer. See 3.5.
296
- S'Width
-
For every scalar subtype S:
297
- S'Width denotes the maximum
length of a String returned by S'Image over all values of the subtype
S. It denotes zero for a subtype that has a null range. Its type is universal_integer.
See 3.5.
298
- S'Class'Write
-
For every subtype S'Class of a class-wide type T'Class:
299
- S'Class'Write
denotes a procedure with the following specification:
300
procedure S'Class'Write(
Stream : access Ada.Streams.Root_Stream_Type'Class;
Item : in T'Class)
301
- Dispatches to the subprogram
denoted by the Write attribute of the specific type identified by the
tag of Item. See 13.13.2.
302
- S'Write
-
For every subtype S of a specific type T:
303
- S'Write
denotes a procedure with the following specification:
304
procedure S'Write(
Stream : access Ada.Streams.Root_Stream_Type'Class;
Item : in T)
305
- S'Write writes the value of
Item to Stream. See 13.13.2.
Contents Index Search Related Documents Previous Next Legal