Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: C++
Expertise: Advanced
Dec 21, 2001

How to Re-open a Nested Namespace


As strange as it may seem, C++ doesn't allow you to re-open a namespace using a qualified name; you can re-open it only by using its nested name. For example, the following program defines a namespace called A that has two embedded namespaces, B and C. The attempt to re-open A::B with a qualified name and add the member d to it fails to compile. By contrast, the addition of a the member e to the same namespace succeeds because in this case the programmer used nested namespaces:
 
namespace A
{
 namespace B
 {
  int a;
 }
 int b;
 namespace C
 {
  int c;
 }
}

namespace A::B // attempt to re-open using a qualified name
{
 int d; // this won't compile
}

namespace A // re-opening namespace B in A
{
 namespace B
 {
  int e; // fine, add a new member to namespace B in A
 }
}

int main()
{
 A::B::a = 1;
 A::b = 2;
 A::C::c = 3;
 A::B::d = 4; // won't compile
 A::B::e = 5;
}
Danny Kalev
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap