Data types¶ Types Names Direct names Other kinds of names Objects Constant and variable objects View of an object Named numbers Scalar Types Ranges Predecessor and Successor Scalar To String Conversion Width attribute Other attributes Enumerations Enumerations as functions Enumeration overloading Position and Internal Code Universal and Root Types Universal Types Root Types Definite and Indefinite Subtypes Incomplete types Type view Non-Record Private Types Type conversion Value conversion View conversion Implicit conversions Conversion of other types Qualified Expressions Verifying subtypes Default initial values Deferred Constants User-defined literals Types and Representation Enumeration Representation Clauses Data Representation Sizes Size attribute and aspect Component size Storage size Alignment Overlapping Storage Packed Representation Trade-offs Record Representation and storage clauses Storage Place Attributes Using Representation Clauses Derived Types And Representation Clauses Representation on Bit Level Changing Data Representation Restrictions Valid Attribute Unchecked Union Addresses Address attribute Address aspect Address comparison Address to integer conversion Address arithmetic Discarding names Shared variable control Volatile Independent Atomic Full-access only Nonatomic full-access Atomic full-access Comparison: full-access and non-full-access types Atomic operations Atomic Exchange Records Default Initialization Dependencies Initialization Order Evaluation Defaults and object declaration Advanced Usages Mutually dependent types Null records Simple Prototyping Extending the prototype More complex applications Implementing the API Tagged null records Record discriminants Known and unknown discriminant parts Discriminant as constant property Private types Object declaration Object assignments Discriminant type Default values Derived types and subtypes Discriminant constraints and operations Discriminant constraints Constrained Attribute Unknown discriminants Object declaration Partial and full view Derived types Unconstrained subtypes Variant parts Discriminant type and value coverage Record size Ensuring valid information Extending record types Per-Object Expressions Default value Restrictions Aggregates Container Aggregates Record aggregates <> others Record discriminants Full coverage rules for Aggregates Array aggregates Positional and named array aggregates Null array aggregate |, <>, others .. Missing components Iterated component association Multidimensional array aggregates <> and default values Extension Aggregates Assignments to objects of derived types Example: Points Using extension aggregates More extension aggregates with others with null record Extension aggregates and descendent types Delta Aggregates Delta Aggregates for Tagged Records Delta Aggregates for Non-Tagged Records Delta Aggregates for Arrays Arrays Array constraints Unconstrained array types Constrained arrays Constrained array types Multidimensional Arrays Unconstrained Multidimensional Arrays Arrays of arrays Derived array types and array subtypes Derived array types Array subtypes Strings Character and String Literals Character Literals String Literals Wide and Wide-Wide Strings Text I/O Wide and Wide-Wide String Handling Bounded and Unbounded Wide and Wide-Wide Strings String Encoding UTF-8 encoding and decoding UTF-8 size and length UTF-16 encoding and decoding UTF-8 applications UTF-8 encoding in source-code files Parsing UTF-8 files for Wide-Wide-String processing Image attribute Overview Type'Image and Obj'Image Wider versions of Image Image attribute for non-scalar types Image attribute for tagged types Image attribute for task and protected types Put_Image aspect Overview Complete Example of Put_Image Relation to the Image attribute Put_Image and derived types Put_Image and tagged types Universal text buffer Overview Additional procedures Numerics Numeric Literals Classification Features and Flexibility Universal Numeric Types Universal Real and Integer Universal Fixed Base types Base Attributes of Modular Types Modulus Attribute Mod Attribute Operations on modular types Attributes of Floating-Point Types Representation-oriented attributes Primitive function attributes Attributes of Fixed-Point types Attributes of ordinary and decimal fixed-point types Attributes of decimal fixed-point types Big Numbers Overview Factorial Conversions Other features of big integers Other operators for big integers Big real and quotients Range checks