Un autre argument en faveur de l'utilisation de "std::" au lieu de "using namespace", pour les débutants, est que cela permet d'apprendre les mots clés qui font parti du langage et les "mots clés" qui font parti de la lib standard. On voit régulièrement des debutants ne pas savoir faire la distinction entre les 2.

Concernant "std::endl", c'est un point sur lequel je ne suis pas d'accord avec Jason (et les C++ core guidelines, je crois qu'elles recommandent la meme chose). Si on affiche des choses dans la console, osef des performances. Si on affiche des milliers de ligne, au point où les performances perdues par std::endl seront perceptibles par le dev, alors il mettra plus de temps a lire ces lignes que le programme a les afficher. Si on écrit dans un fichier, Jason montre dans sa vidéo que cela prend 1 second pour écrire 1 million de ligne. Est-ce réellement critique ? Si on veut plus de performances, la question de ne pas utiliser les flux se posera de toute facon. Bref, on peut utiliser sans problème "std::endl".

(A mon sens, c'est une erreur de regarder simplement les performances brutes et de conclure que "\n" est mieux parce que 10 fois plus rapide. Il faut que les performances soient pertinentes, que l'impact sur l'expérience utilisateur a du sens. La performance pour la performance est une source recurente de problèmes en C++)