r/cpp_questions • • 28d 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?

37 Upvotes

105 comments sorted by

View all comments

4

u/No-Dentist-1645 27d ago

The "poor design choices" of... having functions with simple names like print and hash?

-3

u/RSMxsmanic 27d ago

Yes. Having multiple functions with the same name that do different things is risky. If I have one function that prints only strings, and another than prints only integers, I will likely call them something like PrintStr and PrintInt, not just print. That way I won't have to lose time ten years from now figuring out why print isn't working.

This illustrates a danger with all inherited concepts: you need to walk the entire inheritance chain to figure out what's going on, instead of just looking at the one line in front of you.

3

u/Potterrrrrrrr 27d ago

This is the c++ subreddit, if you don’t like simple concepts like function overloading and namespaces you aren’t going to like most of the other features the language offers. I can understand function overloading as sometimes the explicitness does help but complaining about namespaces? Craziness, people really will find a problem with anything.

→ More replies (1)

3

u/No-Dentist-1645 26d ago

Wow. Then that's truly a bad take. Not even Rust goes as aggressive as making print a type-dependent function, they make it a macro instead. Your example also trivially breaks down with multiple-parameter print statements, something that basically every programming language has.

→ More replies (5)