namespace keyword

   
namespace keyword Declares namespace

  declaration  :=  namespace-defn   block-decl  :=  namespace-alias-defn   using-directive   namespace-defn  ::=  named-namespace-defn   unnamed-namespace-defn   named-namespace-defn  ::= namespace  identifier  {  namespace-body  }  unnamed-namespace-defn  ::= namespace {  namespace-body  }  namespace-body  ::= [  declaration-seq  ]  namespace-alias-defn  ::= namespace  identifier  =  namespace-specifier  ;  namespace-specifier  ::= [::] [  nested-name  ::]  namespace-name   namespace-name  ::=  identifier   using-directive  ::= using namespace  namespace-specifier  ; 

The namespace keyword can be used in a namespace definition, a namespace alias definition, or a using directive. A namespace is a scope for declarations of classes, templates, functions, objects, and other namespaces. Outside a namespace, you can refer to a name that is declared in the namespace by qualifying the name with the scope operator ( : :), such as ns::name , or with a using directive or declaration.

Multiple namespace declarations can name the same namespace, each one adding more declarations to the namespace. The standard namespace, std , is built this way, with many different headers all placing their declarations in the std namespace. A namespace can be anonymous, which prevents the enclosed declarations from being visible in other source files.

A namespace alias defines an identifier as a synonym for an existing namespace. See using for information on the using directive.

Example

  namespace  math_version_2 {   const long double pi = 3.1415926535897932385L; };  namespace  math = math_version_2; using  namespace  math; 

See Also

class , declaration , identifier , using , Chapter 2

   


C++ in a Nutshell
C++ in a Nutshell
ISBN: 059600298X
EAN: 2147483647
Year: 2005
Pages: 270
Authors: Ray Lischner

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net