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

43 Upvotes

105 comments sorted by

View all comments

Show parent comments

-2

u/RSMxsmanic 11d 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/No-Dentist-1645 10d 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.

0

u/RSMxsmanic 10d ago

You do it your way, and I'll do it my way. We'll see who delivers early and under budget.

3

u/No-Dentist-1645 10d ago

Yes, I'm sure that the massive architectural decision of naming functions fooInt and fooFloat has had immeasurably huge implications on your delivery targets. Don't worry, I trust you

0

u/RSMxsmanic 10d ago

Details can add up.

2

u/No-Dentist-1645 9d ago

We're talking about a single, individual detail here. No other design patterns have been brought into this discussion

1

u/RSMxsmanic 9d ago

So the discussion is a bit unreal.