Re: Question de généricité

Liste des GroupesRevenir à fcl ada 
Sujet : Re: Question de généricité
De : 314 (at) *nospam* drpi.fr (DrPi)
Groupes : fr.comp.lang.ada
Date : 01. Sep 2023, 16:52:02
Autres entêtes
Organisation : Posted through news.alphanet.ch
Message-ID : <ucstqi$vg1$1@shakotay.alphanet.ch>
References : 1 2 3 4 5 6
User-Agent : Mozilla Thunderbird
Le 01/09/2023 à 00:18, Gautier write-only address a écrit :
Je ne comprends pas "nul : Item_Type" dans les paramètres génériques. A
quoi sert cette ligne ?
Enlève-la et essaie de compiler!
Oui, ça compile pas. Mais ça ne répond pas à ma question ;)
 Sans cette ligne, le compilateur ne sait pas du tout ce que peut signifier ce truc qui s'appelle "nul", là où il y a ":= nul;"
Évidemment, dans l'instanciation particulière que tu as en tête, ce "nul" est bien un octet de valeur 0, et même provenant de Interfaces.C, surtout qu'il porte par hasard le même nom.
Mais c'est une coïncidence et ton intuition fait son travail.
Tu pourrais avoir dans le code générique "terminator" au lieu de "nul".
Result (Index_Type (Item'Length + 1)) := terminator;
Dans ce cas, que signifie ou vaut "terminator"? Valeur ? Fonction?...
 
Ha, voilà, c'est le "nul" qui m'a perturbé. J'ai confondu avec "null".
Des fois, il faut pas grand chose pour comprendre de travers ;)

Tu peux avoir n'importe quel type comme Item_Type.
Un exemple simple:
type U32 is mod 2**32;
 type Float_Array is array (U32 range <>) of aliased Float;
 function To_Float (c : Character) return Float is (Float (Character'Pos (c)));
 function To_TW_Float is new To_TW_STR (Float, 3.1415927, U32, Float_Array, To_Float);
 Tu peux avoir qqch d'un peu plus compliqué:
type My_Item is record a, b, c : Float; d: Positive; end record;
C'est pas le ItemType qui me pose problème.
Ce qui me pose problème, c'est que j'aimerais que la fonction "To_TW_STR" renvoie un type entièrement contraint.
EN reprenant les définitions de départ /
    subtype t_TW_STR32  is char_array (1 ..  34);
    subtype t_TW_STR64  is char_array (1 ..  66);
    subtype t_TW_STR128 is char_array (1 .. 130);
    subtype t_TW_STR255 is char_array (1 .. 256);
J'aimerais pouvoir instancier une fonction qui retourne "t_TW_STR32", une qui retourne "t_TW_STR64"...

Date Sujet#  Auteur
29 Aug 23 * Question de généricité14DrPi
30 Aug 23 `* Re: Question de généricité13Gautier write-only address
30 Aug 23  `* Re: Question de généricité12DrPi
30 Aug 23   `* Re: Question de généricité11Gautier write-only address
31 Aug 23    `* Re: Question de généricité10DrPi
1 Sep 23     `* Re: Question de généricité9Gautier write-only address
1 Sep 23      `* Re: Question de généricité8DrPi
1 Sep 23       +* Re: Question de généricité3Gautier write-only address
2 Sep 23       i`* Re: Question de généricité2DrPi
2 Sep 23       i `- Re: Question de généricité1DrPi
2 Sep 23       `* Re: Question de généricité4J-P. Rosen
2 Sep 23        `* Re: Question de généricité3DrPi
15 Sep 23         `* Re: Question de généricité2Thomas
16 Sep 23          `- Re: Question de généricité1DrPi

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal