Re: PROGRAM_ERROR : access before elaboration
Thomas De Contes <[email protected]>
| Newsgroups | gmane.comp.lang.ada.france |
|---|---|
| Message-ID | <[email protected]> |
Le 20 nov. 07 à 20:53, Laurent GUERBY a écrit : > On Tue, 2007-11-20 at 17:20 +0100, Thomas De Contes wrote: >> un paquetage dans lequel je veux simplement mettre des constantes, >> qui sont trop compliquées à construire pour pouvoir se faire >> directement avec des agrégats, par exemple : >> >> >> package defaut is >> pragma Elaborate_Body; >> >> pageParDefaut : constant page; >> >> private >> function constructionPageParDefaut return page; >> pageParDefaut : constant page := constructionPageParDefaut; >> end defaut; > > Tu peux directement mettre dans la partie publique > > function pageParDefaut return page; > > Pour l'utilisateur il n'y a pas de difference entre une fonction de ce > type et une constante. Je me suis aperçu après avoir posté que dans mon cas j'avais plutôt intérêt à faire comme ça, puisque c'était à la limite plus rapide de construire la variable "sur place" que de faire une copie (donc pour moi ça n'a rien d'urgent) Par contre, il y a des cas où - c'est plus long à construire qu'à copier, par exemple parce qu'à la construction il y a des calculs qu'on n'a pas besoin de faire à la copie - on n'a tout simplement pas besoin de copier, parce qu'on n'utilise la constante que pour avoir des propriétés, ou pour la mettre en paramètre de fonctions (auquel cas c'est un énorme gâchis de reconstruire à chaque fois, non ? c'est pas optimisé, ça ?) Ca m'est deja arrivé Je ne sais plus exactement comment j'ai fait, mais il me semble que je trouvais ça pas propre Et j'espérais qu'ada 2005 ait apporté ce qu'il faut pour pouvoir faire ça proprement :-) -- j'agis contre l'assistanat, je travaille dans une SCOP ! _______________________________________________ Site WWW de l'association Ada-France: http://www.ada-france.org/ [email protected] http://www.ada-france.org/mailman/listinfo/ada-france