Discussion:
Générique interne à Ada.Strings.Bounded.
(trop ancien pour répondre)
Blady
2019-01-23 07:12:56 UTC
Permalink
Bonjour,

Ada.Strings.Bounded se présente come ci-dessous avec un niveau non
générique et un niveau interne générique Generic_Bounded_Length :

package Ada.Strings.Bounded is
pragma Preelaborate(Bounded);
generic
Max : Positive; -- Maximum length of a Bounded_String
package Generic_Bounded_Length is
Max_Length : constant Positive := Max;
type Bounded_String is private;
Null_Bounded_String : constant Bounded_String;
<...>
private
... -- not specified by the language
end Generic_Bounded_Length;
end Ada.Strings.Bounded;

On aurait pu avoir directement :

generic
Max : Positive; -- Maximum length of a Bounded_String
package Ada.Strings.Bounded is
Max_Length : constant Positive := Max;
type Bounded_String is private;
Null_Bounded_String : constant Bounded_String;
<...>
private
... -- not specified by the language
end Ada.Strings.Bounded;

Y a-t-il une raison particulière pour que cela n'ai pas été défini ainsi ?

Merci, Pascal.
J-P. Rosen
2019-01-30 20:51:52 UTC
Permalink
Post by Blady
Bonjour,
Ada.Strings.Bounded se présente come ci-dessous avec un niveau non
[...]
generic
   Max   : Positive;    -- Maximum length of a Bounded_String
package Ada.Strings.Bounded is
      Max_Length : constant Positive := Max;
      type Bounded_String is private;
      Null_Bounded_String : constant Bounded_String;
<...>
private
       ... -- not specified by the language
end Ada.Strings.Bounded;
Y a-t-il une raison particulière pour que cela n'ai pas été défini ainsi ?
L'annotated ARM dit:
"Reason: Strings.Bounded declares an inner generic package, versus
itself being directly a generic child of Strings, in order to retain
compatibility with a version of the string-handling packages that is
generic with respect to the character and string types."

Honnêtement, je ne trouve pas ça lumineux comme raison...
--
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
Tel: +33 1 45 29 21 52, Fax: +33 1 45 29 25 00
http://www.adalog.fr
Loading...