Forum Programmation.c++ Le c++ de l'an 2050

Posté par  (site web personnel) .
Étiquettes : aucune
0
8
fév.
2005
Bonsoir forum,

Ce soir j'ai décidé de me remettre au c++, et ce via anjuta, et je me suis apercu que ma manière de coder "à l'ancienne" (comme en l'an 1876) ne lui plaisait pas.

Il me dit que iostream.h c'est mal, il veut iostream tout court.
Ensuite cout et cin sont devenus std::cout et std::cin

Quelqu'un peut il m'expliquer ces changements ?

Peut on forcer anjuta a accepter mon c++ à moi comme en l'an 1876 ?


Merci.
  • # ANSI C++

    Posté par  (site web personnel) . Évalué à 3.

    Tout ça c'est pour être ANSI C++

    Pour éviter le std::cout / std::cin

    un petit
    using namespace std;
    et ça devrait être bon.
    cf. http://www.cplusplus.com/doc/tutorial/tut5-2.html(...)

    https://damien.pobel.fr

    • [^] # Re: ANSI C++

      Posté par  (site web personnel) . Évalué à 1.

      ah ok merci!
      Mais c'est nouveau ? c'est comme ca depuis quand ? même dans mon bouquin de c++ ils n'en parlent pas :(
      • [^] # Re: ANSI C++

        Posté par  . Évalué à 1.

        C'est comme ca depuis le debut.

        std c'est un namespace comme un autre, cout et cin font partie de std, et le compilo n'a aucune maniere de savoir ou ils sont si tu ne le lui dit pas, soit en le faisant explicitement a chaque utilisation a travers std::cin ou std::cout soit en lui disant : "si tu trouves pas dans l'espace global, va chercher dans std aussi" en ajoutant using namespace std;
        • [^] # Re: ANSI C++

          Posté par  (site web personnel) . Évalué à 2.

          C'est comme ca depuis le debut.
          Ah oui ? bah dans mon bouquin de c++ le mot clé "namespace" n'existe meme pas dans la table d'indexe.
          Et de mémoire je ne l'ai jamais utilisé non plus quand je faisais du c++ en cours (c'etait il y a quelques années, mais quand même).

          Donc le truc de "c'est comme ca depuis le début" a la rigueur de je veux bien, mais le truc du "le compilo n'a aucune maniere de savoir ou ils sont si tu ne le lui dit pas", là parcontre je m'insurge ! :)

          Ca marchait très bien avant, et sans namespace, donc je ne vois pas pourquoi désormais ils seraient obligatoires.

          P.S : mon bouquin de c++ a été achevé d'imprimer en 2000, donc ca ne date pas de 30 ans ma méthode de programmation quand même
          • [^] # Re: ANSI C++

            Posté par  (site web personnel) . Évalué à 3.

            > P.S : mon bouquin de c++ a été achevé d'imprimer en 2000, donc ca ne date pas de 30
            > ans ma méthode de programmation quand même

            Changes de bouquin ;-)

            les cout sans std:: datent d'avant la norme officielle, ça marchait en GCC 2.95, qui est sorti à peu près en même temps que la norme si mes souvenirs sont bons.

            Au passage, le "using namespace ...;" dans les fichiers .h, c'est mal, ça pollue l'espace de nom des gens qui te #include.
    • [^] # Re: ANSI C++

      Posté par  . Évalué à 2.

      En meme temps, avoir des noms completement qualifies, c'est pas vraiment le bout du monde hein ? Surtout avec un namespace aussi petit (en taille de lettres) que std...

      Si vraiment ca t'insupporte, moi je metterais plutot :
      using std::cout;
      using std::cin;
      using std::endl;

      et comme suggere ailleurs, ce serait mieux de le mettre dans le cxx plutot que le header.

      Mes 2 centimes.
  • # Norme precises ?

    Posté par  . Évalué à 2.

    Je rebondis sur la question pour savoir si il existe un endroit sur le web
    qui ressence dans un langage humainement comprehensible ( je veux dire de facon claire enfin vous me comprenez )
    Tout ce qui etait faisable avant la norme ANSI C++ ( gcc 2.* )
    et tout ce qui desormais ne l'est plus ( gcc 3.* etc ... )

    J'ai pu remarquer :

    #include <machin.h> devient soit #include soit # include

    necessite de mettre using namespace std; au debut du prog

    enfin lorsque des fonctions ont des valeurs par defaut
    elle ne peuvent plus etre declare a la fois dans le .h et dans le .cc

    y en a t'il d'autre ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.