logo       

la décomposition en package empêche certaines choses circulaires: msg#00024

lang.ada.france

Subject: la décomposition en package empêche certaines choses circulaires

with tabloid;
pragma Elaborate_All (tabloid);

generic
type donneesBranches is private;
type donneesNoeuds is private;
type TabDonneesBranches is array (Positive range <>) of donneesBranches;
with function "<"(db1 : donneesBranches; db2 : donneesBranches) return boolean;
donneeNoeudParDefaut:donneesNoeuds;

package arbres is

type arbre is private;

private


type branche;
package branches is new tabloid(branche);
use branches;

type arbre is record
donneeNoeud : donneesNoeuds;
branches : branches.typeTabloid;
end record;

type branche is record
donneeBranche : donneesBranches;
noeudSuivant : arbre;
end record;


end arbres;




error: premature use of incomplete type
error: instantiation abandoned


je me vois obligé de faire des pointeurs dans ce package

alors que le package tabloid fournit deja un pointeur sur tableau non contraint, tableau vide à l'initialisation
il aurait fallu que ça autorise ça, et que ça fasse storage error (ou prgm error) à l'exécution (avec par ex un warning à la compilation, vu que ça arrive pas souvent

au passage, ça aurait aussi autorisé ceci


type arbre(n:natural) is record
donneeNoeud : string(1..n);
case (n) is
when 0 =>
null;
when others =>
branches : arbre(n-1);
end case;
end record;

_______________________________________________
Site WWW de l'association Ada-France: http://www.ada-france.org/
Ada-France@xxxxxxxxxxxxxx
http://www.ada-france.org/mailman/listinfo/ada-france



<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise