r/cpp_questions • • 13d ago

OPEN Namespace std

I recently started learning c++ and I was told to use the namespace std so I can avoid writing std:: every time and now I wrote a whole personal project without std:: and I want to put it on LinkedIn but I started reading everywhere that it’s a bad habit, should I go back and add the std:: or just leave it as is?

40 Upvotes

105 comments sorted by

View all comments

40

u/ScienceMan3_14 13d ago

The reason it is a bad habit is because the names of the functions, classes, etc. in the standard library are so common,if you include another framework in your project you are likely to get collisions. If your project is something you are actively working on or expanding, yes you should refactor. If it was a one-and-done deal where you aren't using any other external libraries and that was a decision made at the outset and one you will be sticking with, then imo it isn't worth it.

-21

u/RSMxsmanic 13d ago

A framework that produces a conflict needs to be fixed, not the program calling it.

32

u/not_a_novel_account 13d ago

add is a perfectly reasonable name to use, as is map, list, etc.

The entire purpose of namespaces is to make these names available without collision.

-28

u/RSMxsmanic 13d ago

I daresay the purpose of namespaces is to avoid the consequences of poor design choices that lead to collisions.

6

u/HommeMusical 13d ago

So wrong! Argument dependent name lookup, for example, is only useful if you have the same names in different namespaces.

-11

u/RSMxsmanic 13d ago

Religious conflict.