Synthesizing a Namespace Sample

Description

It is possible to declare a namespace made up of members of other namespaces. For example, if you say:

	namespace A {
		void f() {}
	}

	namespace B {
		void f() {}
		void g() {}
	}

	namespace C {
		using namespace A;
		using B::g;
	}
then this means that namespace C is composed of all the members of namespace A, and the member B::g() from namespace B. This mechanism is useful in a variety of interface design approaches. For example, you may wish to create a new namespace, that uses declarations from several existing namespaces, and therefore provides an interface or window into a large body of types.

Concept

The sample program defines a namespace D composed of three namespaces A, B, and C. The new namespace incorporates all of namespaces A and B, and member C::h() from C.

Supported
Supported
Supported