Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c++ > #68656
| From | Bo Persson <bo@bo-persson.se> |
|---|---|
| Newsgroups | comp.lang.c++ |
| Subject | Re: Putting two colons before std -- is it ever needed? |
| Date | 2019-09-25 15:48 +0200 |
| Message-ID | <gv19hnFj06bU1@mid.individual.net> (permalink) |
| References | <a23612ee-39c5-4b1b-991a-212689fdbfaf@googlegroups.com> |
On 2019-09-25 at 10:02, Frederick Gotham wrote:
>
> Occasionally I see people write code like this:
>
> #include <string>
>
> int main()
> {
> ::std::string str;
> }
>
> I think you would only ever need to put those two colons before 'std' if you created a class or a namespace called 'std', and of course if you did, then it would have to be inside another namespace (because otherwise you'd have a name clash).
>
> I tried compiling the following code, and each time it created a 'string' from the C++ standard library.
>
> So the question I ask is if there is **ever** any situation when it's necessary to put two colons before 'std'?
>
> #include <string>
> #include <iostream>
>
> namespace Monkey {
>
> class nonstd {
> int i;
> };
>
> class mutant : public nonstd {
> int j;
> };
>
> class mongrel : public nonstd {
> int k;
> };
>
> class std {
> public:
> typedef char *string;
> };
> }
>
> int SomeFunc()
> {
> using namespace Monkey;
>
> std::string a;
>
> ::std::string b;
>
> ::std::cout << sizeof(a) << " " << sizeof(b) << ::std::endl;
> }
>
> int main()
> {
> std::string a;
>
> ::std::string b;
>
> ::std::cout << sizeof(a) << " " << sizeof(b) << ::std::endl;
>
> SomeFunc();
> }
>
It would be a problem if SomeFunc() were also a member of the Monkey
namespace, and one of your coworkers added his own std::string to it.
It that case it is probably time better spent to have a serious talk
with your collegue, rather than to fill up the code base with millions
of :: during the next decades.
Bo Persson
Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Putting two colons before std -- is it ever needed? Frederick Gotham <cauldwell.thomas@gmail.com> - 2019-09-25 01:02 -0700
Re: Putting two colons before std -- is it ever needed? Ian Collins <ian-news@hotmail.com> - 2019-09-25 20:15 +1200
Re: Putting two colons before std -- is it ever needed? David Brown <david.brown@hesbynett.no> - 2019-09-25 12:22 +0200
Re: Putting two colons before std -- is it ever needed? Frederick Gotham <cauldwell.thomas@gmail.com> - 2019-09-25 03:48 -0700
Re: Putting two colons before std -- is it ever needed? Bo Persson <bo@bo-persson.se> - 2019-09-25 15:48 +0200
Re: Putting two colons before std -- is it ever needed? Vir Campestris <vir.campestris@invalid.invalid> - 2019-09-26 21:51 +0100
Re: Putting two colons before std -- is it ever needed? James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-09-25 10:02 -0400
Re: Putting two colons before std -- is it ever needed? James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-09-25 10:11 -0400
Re: Putting two colons before std -- is it ever needed? Frederick Gotham <cauldwell.thomas@gmail.com> - 2019-09-25 07:17 -0700
Re: Putting two colons before std -- is it ever needed? Stuart Redmann <DerTopper@web.de> - 2019-09-25 19:51 +0200
Re: Putting two colons before std -- is it ever needed? James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-09-25 15:37 -0400
Re: Putting two colons before std -- is it ever needed? Frederick Gotham <cauldwell.thomas@gmail.com> - 2019-09-26 00:01 -0700
Re: Putting two colons before std -- is it ever needed? woodbrian77@gmail.com - 2019-09-27 08:50 -0700
Re: Putting two colons before std -- is it ever needed? scott@slp53.sl.home (Scott Lurndal) - 2019-09-27 16:25 +0000
Re: Putting two colons before std -- is it ever needed? woodbrian77@gmail.com - 2019-09-27 11:40 -0700
Re: Putting two colons before std -- is it ever needed? scott@slp53.sl.home (Scott Lurndal) - 2019-09-27 20:19 +0000
csiph-web