Paquetage en paramètre de paquetage générique

Paquetage en paramètre de paquetage générique - Ada - Programmation

Marsh Posté le 03-12-2009 à 14:12:35    

Bonjour, re...
 
En espérant que vous vous portiez bien...
 
J'ai un problème concernant les paquetages en paramètre de paquetage.
 
Dans le main je déclare un subtype T_Langage is integer range 1..150_000;
Je passe une instance de integer_io appelé Langage_Io à un paquetage générique défini comme suit :
 

Code :
  1. with Text_Io;
  2. use Text_Io;
  3. generic
  4.   type T_Language is (<> );
  5.   Width : Positive := 3;
  6.   Backward : T_Language;
  7.   with function Img(Item : in T_Language) return String;
  8.   with procedure Get(Item : out T_Language);
  9.   with package Item_Io is new Integer_Io(<> );
  10.   Source_Filename : String := "train";
  11. package Warch is

 
 
Et à l'utilisation d'un Item_Io.get dans le corps de Warch comme suit :

Code :
  1. Item_Io.Get(source, Item);


 
J'obtien un erreur de compilation.

gcc -c main.adb
warch.adb:47:20: no candidate interpretations match the actuals:
warch.adb:47:20: missing argument for parameter "Item" in call to "Get" declared at a-tiinio.ads:73, instance at warch.ads:9
warch.adb:47:20: missing argument for parameter "Item" in call to "Get" declared at a-tiinio.ads:53, instance at warch.ads:9
warch.adb:47:25: expected type "Ada.Text_Io.Integer_Io.Num" from instance at warch.ads:9
warch.adb:47:25: found type "T_Language" defined at warch.ads:4
warch.adb:47:25:   ==> in call to "Get" at a-tiinio.ads:58, instance at warch.ads:9
gnatmake: "main.adb" compilation error


Voila, normalement T_Language étant un sous type de Integer et Language_Io une instance de Integer_Io avec T_Language...
Je ne comprend pas.
 
Pourriez vous me montrer mon erreur. A moins que...
S'il vous plaît ? Merci.

Reply

Marsh Posté le 03-12-2009 à 14:12:35   

Reply

Marsh Posté le 03-12-2009 à 15:53:54    

Yep!
 
Je comprends ce que j'ai fait, et que ça ne fonctionne pas  :pt1cable:  
 
Mais je trouve pas la soluce à mon problème.
 
 
L'objectif est de cacher le type T_Language à l'implémentation de Warch.
Mais je dois pouvoir lire un fichier texte de T_Language pour lire des lignes de multiples valeurs de T_Language. Et je sèche.


Message édité par Profil supprimé le 03-12-2009 à 16:02:11
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed