>> Réponse technologique:
>> Il n'y a pas de miracle ni de magie en Ada, juste des déclarations et
>> des règles de visibilité. Quand on déclare le type t_couleurs, le
>> compilateur déclare automatiquement une fonction dont le nom est
>> t_couleurs'Pos. C'est cette fonction qui est appelée. Quelle déclaration
>> correspondrait à la syntaxe couleur'pos?
>
> (c'est pas clair mais heureusement t'as expliqué dans le msg suivant)
>
>
http://www.ada-auth.org/standards/rm12_w_tc1/html/RM-K-2.html
>
> si je comprend bien,
> "X'Image denotes the result of calling function S'Image"
> n'a pas exactement la même signification que
> "S'Image denotes a function with the following specification"
non, X'Image provoque l'appel de la fonction, et dénote le résultat.
S'Image est la fonction elle-même (il faut l'appeler), on peut très bien
par exemple la passer à une instanciation de générique
X'Img est une fonction sans paramètre, pas le résultat d'un appel.
Rien n'interdit de l'utiliser partout, quand je dis que c'est pour le
debug, c'est une opinion personnelle.
En fait Text_IO est très bien fait, à condition de bien l'utiliser.
En particulier, il possède une particularité très intéressante:
si on prend une séquence qui écrit des données de types variés (via les
bonnes instantiations), il suffit de reprendre exactement le même code
et de remplacer tous les PUT par des GET, et on relira les données
correctement. Ca ne marche plus si on utilise des 'Image , en
particulier parce que si la longueur de ligne est limitée, les string
peuvent être repliées, alors que pour les autres données, on forcera un
New_Line pour être sûr qu'une donnée n'est jamais à cheval sur deux lignes.
--
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
Tel:
+33 1 45 29 21 52
https://www.adalog.fr