Not positive this is a bug, but I think so.
This code compiles and prints 0:
#include <iostream>
namespace {
int i = 0;
}
int main(int argc, char** argv)
{
std::cout << "i=" << ::i << std::endl;
return 0;
}
I'd expect it to complain that i isn't in the global namespace
(since it is in the anon/default one).
Removing the :: prefix from i also works, as it should.
Apparently, the MS VC++ .NET (a later version, not sure which)
does complain (though that doesn't necessarily mean much in itself).
Thanks.
PS: This is using the Redhat built/distrubuted:
g++ (GCC) 3.4.3 20050227 (Red Hat 3.4.3-22.fc3)
on Fedora core 3.
--
Summary: :: can access default/anon namespace instead of just
global namespace
Product: gcc
Version: 3.4.3
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: t8 at pobox dot com
CC: gcc-bugs at gcc dot gnu dot org
GCC host triplet: i386 GNU/Linux
GCC target triplet: i386 GNU/Linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22066