Namespace without a name in C++ [duplicate]

Possible Duplicate:
Unnamed/anonymous namespaces vs. static functions

I came across this code

namespace ABC {
namespace DEF {

namespace
{

I expected the namespace should be followed by some name, but it's not the case with this code.

Is this allowed in C++? What's the advantage for this unnamed namespace?


It's called an unnamed namespace / anonymous namespace. It's use is to make functions/objects/etc accessible only within that file. It's almost the same as static in C.