cerhu > comp.lang.* > comp.lang.ada

Blady (23/01/2019, 09h12)
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 (30/01/2019, 22h51)
Le 23/01/2019 à 08:12, Blady a écrit :
[..]
>       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...
Discussions similaires
Problème de conflit entre une méthode générique et le type générique d'une classe

fonction générique dans un package générique

mémoire et strings

gestion des strings


Fuseau horaire GMT +2. Il est actuellement 09h31. | Privacy Policy