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 Damien Pobel (site web personnel) . Évalué à 3.
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 cho7 (site web personnel) . Évalué à 1.
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 pasBill pasGates . Évalué à 1.
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 cho7 (site web personnel) . Évalué à 2.
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 Matthieu Moy (site web personnel) . Évalué à 3.
> 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 Sebastien . Évalué à 2.
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 Mais qui suis-je ? :) . Évalué à 2.
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.