@LA_Tupac:
- std:: fait parti du langage, et est un bon indicateur de ce qui est standard ou non. Il est généralement conseillé de le laisser.
- Je ne dis pas de ne jamais faire sauter les esapces de nom, mais de le faire proprement (via using, et non using namespace, et surtout dans une portée limitée, à l'intérieur d'une fonction par exemple)
- Tu ne sais absoluement pas ce qu'il y a dans les différentes implémentations de la STL, ni dans celle à venir. Il y a de forte chance qu'un composant à toi porte le même nom qu'un élément de la STL. Dans le meilleur des cas, ça ne compile pas, dans le pire le comportement est completement absurde.
- Petit exemple d'entreprise: Dans un ancien code que je devais mettre à jour, je devais à un moment, calculer une somme en appliquant un coefficient. Malheureusement, mon prédecesseur avait foutu du "using namespace std;" partout :(. Dans un autre fichier, j'ai voulu coder ma fonction "count". Et quoi que je fasse, je me retrouvais sans cesse avec des valeurs étranges ! J'ai mis beaucoup de temps à comprendre mon erreur. Voici un exemple, très très simplifié de mon souci:
#include
#include
using namespace std;
int main()
{
int tab[] = {1, 2, 3, 4, 6, 7, 8, 9}; // 40 * coeff 2 => 80
const int size = sizeof(tab) / sizeof(int);
cout << "Sum is: "
<< count(tab, tab + size, 2) << endl // 1 au lieu de 80 ????
<< endl;
}
int count(int* begin, int* end, int coeff)
{
int sum = 0;
while (begin != end)
{
sum += *begin;
++begin;
}
return sum * coeff;
}
Au lieu de 80, ça te renverra: 1
La comme ça, c'est peut être ultra évident ce qui ne vas pas. Mais dit toi que quand tu as +50 fichiers, et que le code est bien plus compliqué que ça, et que tu penses que le souci vient de ton code (vu qu'avant ça fonctionnait), crois moi tu perds énormément de temps.
________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question