+ 21
Stop using Namespace std!
I am trying to write C++ code without "using namespace std" to get better at using C and C++ libraries. If you have C++ codes and/or resources on using C++ libraries, I would appreciate it if you share it.
19 Respuestas
+ 16
I have some code that will demonstrate why we shouldnt use namespace std.
No other resources come to mind though (sorry) as I have yet to venture outside the standard library when not using namespace std.
code example: Try uncommenting using namespace std;
this error occurs because there is max function in the std namespace.
https://code.sololearn.com/cgXS9y00KD6C/?ref=app
+ 7
https://code.sololearn.com/crryuPaDmrH6/?ref=app
Same here. This wont work with using namespace std. So i had to manually give std:: at each place
+ 6
@James
Thank you for sharing.
I have tried using a C language header with success.
I used <cstdio> in my code.
+ 5
@Jay thank you
That is what I am going for.
I have been trying to use special function like "toupper" and "tolower" from the standard C libraries in standard.
I am going over the basics again on the cpp site
edited
http://www.cplusplus.com/doc/tutorial/program_structure
It is not covered in the course on SL and needs to be used on sites like codewars and Hackerspace.
Also if I can use the libraries, I can do more with C++.
+ 5
@Manual: I got a 404 on that link.. odd. I was gunna have a read through as well!
EDIT: lol never mind.. the last brace was in the url
+ 5
[edited]
@James
You are right the course teaches people to use
"namespace std" from the beginning.
I found out, why using it can be a problem recently.
+ 5
Hi,
you gonna call me "noob" but what's wrong with namespace std?
+ 5
@jay This article literally screwed my head... So I understood that it's easier to use another header namespace specificator to catch compiling error, right? Well, the best way to see what's the most handy is to test with his own program... So I should try to code first! 😂
+ 5
By declaring namespaces only within the scope we are going to use them. We can limit this problem yes. If that is what you mean.
+ 4
@Jay I got that too.
I deleted the brace as well.
+ 2
I made some progress, here is what I came up with.
I used the C library header and std:: for output.
https://code.sololearn.com/c8BaPFZ1bjhx/?ref=app
+ 2
@Ace
Thank you, for sharing your codes
+ 2
@James
That makes sense.
What are resources are you using, to better your skills?
+ 2
@Savage
I am new to it too. I got my info from here.
http://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice
+ 2
Here is a good example of when using namespace std is going to mess with your code.
https://code.sololearn.com/cgXS9y00KD6C/?ref=app
If you uncomment using namespace std; and bring the entire standard namespace into scope you will find the program generates errors and will not compile.
Why is this? Because the template function max we created conflicts with a function already defined in the standard namespace.
Basically The compiler gets confused as to which max function you mean when you type max(7, 3);
Do you mean the one you just made or did you mean std::max?
+ 2
I remember back when I first started learning C++, everyone and every video at some point would say "don't use namespaces, especially the standard one". This was a practice I adopted for a short time, but didn't know why. I (very shortly) later realized this a silly practice, unless you're explicitly using methods from two different namespaces that have the same signatures.
So, if you're using the "omit 'using namespace std'" method in your programs when there aren't conflicting namespaces, you're just lessening readability of your code, and wasting time by typing "std::" constantly.
+ 2
@Leon lit
Well, you can start with the namespace std :) instead of using cin or cout, you should use std::cin and std::cout
As a beginner i will give this tip/comment to other beginners, what @Ace said is when you get at that point when you have multiple files(header and cpp) and your application/program is getting bigger you should try to make the code very clear by NOT using the namespace.
So, great topic for beginners, because this is really helpful if you want to be a professional programming in the future :) I wish i had this post when I was lost in my research :))
+ 1
I am using borland C++ and it shows the error "namespace name unexpected"