acheter priligy acheter cialis acheter propecia
Microvessels - is buy cialis the main link of the vascular system. They perform a variety of functions: 1.Uchastvuyut in redistribution of blood in the body, depending on his needs. 2. Create conditions for the exchange of substances between blood and tissues. 3.Igrat compensatory-adaptive role when buy Valtrex online exposed to extreme environmental factors - hypothermia, hyperthermia and others.
Accueil » Divers

GNAT GPL 2012 est paru!

27 juin 2012 2 commentaires

La nouvelle version publique de GNAT, avec le support d’Ada 2012, vient de sortir.

Comme d’habitude, il est disponible sur http://libre.adacore.com

2 commentaires »

  • Vivien a dit:

    J’ai installé Gnat 2012 sous windows XP et sous linux Mint 12. Sous linux aucune compilation n’aboutit et j’obtiens toujours le même message d’erreur disant que le fichier crtl.o n’est pas trouvé.
    Sous windows, je fais quelques essais pour me familiariser avec la nouvelle norme ADA 2012 et j’observe une curieuse incompatibilité entre des déclarations qui devraient suivant ma compréhension être tout à fait indépendantes :

    Le code suivant compile et s’exécute bien :

    with Ada.Text_IO; use Ada.Text_IO;
    with ada.containers.indefinite_holders;

    procedure Test2_Ada12 is

    type letters is (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) ;
    subtype my_letters is letters with static_predicate => my_letters in a|e|i|o|u|w..z;

    — package vocabulary is new ada.containers.indefinite_holders (Element_type => string);
    — use vocabulary;
    — Voc : vocabulary.Holder;

    begin

    for letter in my_letters loop
    put_line(my_letters’image(letter));
    end loop;

    — replace_element(voc, « AZERTY »);

    end Test2_Ada12;

    Par contre si je rends actives les 4 lignes commentées :

    with Ada.Text_IO; use Ada.Text_IO;
    with ada.containers.indefinite_holders;

    procedure Test2_Ada12 is

    type letters is (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) ;
    subtype my_letters is letters with static_predicate => my_letters in a|e|i|o|u|w..z;

    package vocabulary is new ada.containers.indefinite_holders (Element_type => string);
    use vocabulary;
    Voc : vocabulary.Holder;

    begin

    for letter in my_letters loop
    put_line(my_letters’image(letter));
    end loop;

    replace_element(voc, « AZERTY »);

    end Test2_Ada12;

    J’obtiens les erreurs de compilation suivantes :

    test2_ada12.adb:7:76: « a » is undefined
    test2_ada12.adb:7:78: « e » is undefined
    test2_ada12.adb:7:80: « i » is undefined
    test2_ada12.adb:7:82: « o » is undefined
    test2_ada12.adb:7:84: « u » is undefined
    test2_ada12.adb:7:86: « w » is undefined
    test2_ada12.adb:7:89: « z » is undefined

    Compilation échouée.

    Pourquoi instanciation du générique Indefinite_Holders rend-elle incorrecte la déclaration dut ype énuméré letters ? Ca semble complètement incompréhensible.

  • admin a dit:

    Cela n’a rien à voir avec les containers, mais avec l’utilisation d’une chaine de caractères. Le container est instancié sur String, or Letter n’est pas un type caractère, mais un énumératif dont les litéraux se trouvent n’avoir qu’une seule lettre dans leur nom.

    On pourrait à la rigueur le définir comme un type caractère de cette façon:
    type letters is (‘a’,’b’,’c’, etc..) ;
    (noter les apostrophes)
    mais ce type serait différent du type Character, et donc incompatible avec le type String.

    Peut-être que ce que tu veux faire est tout simplement:
    subtype my_letters is Character with static_predicate => my_letters in a|e|i|o|u|w..z;

Laissez un commentaire

Ajoutez votre commentaire ci-dessous, ou créez un rétrolien depuis votre site. Vous pouvez également souscrire à ces commentaires par RSS.

Merci de vous conformer à la netetiquette.

Vous pouvez utiliser ces balises :
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>