Next: , Previous: Line, Up: Intrinsic Subprograms

5.8 Rotate_Left

In standard Ada, the Rotate_Left function is available only for the predefined modular types in package Interfaces. However, in GNAT it is possible to define a Rotate_Left function for a user defined modular type or any signed integer type as in this example:

        function Shift_Left
          (Value  : My_Modular_Type;
           Amount : Natural)
           return   My_Modular_Type;

The requirements are that the profile be exactly as in the example above. The only modifications allowed are in the formal parameter names, and in the type of Value and the return type, which must be the same, and must be either a signed integer type, or a modular integer type with a binary modulus, and the size must be 8. 16, 32 or 64 bits.