总结:
1.::ant 表根命名空间,或匿名空间
2.同时存在 ::ant::i 和::ant::blas::i, ant::detail::i时,在::ant::detail中使用i时,默认调用ant::detail::i
3.平级namespace 调用用,要加相应的命名空间
4.域内命名空间可省
5.即使存在多个相同名字的命名空间,不会报错,按最局部分调用原则调用,如同全局变量与局部变量名字一样时,优先调用局部变量
代码:
#include <stdlib.h>
#include <iostream>
namespace detail
{
const int i=99;
}
namespace ant
{
namespace blas
{
const int i=0;
}//end blas
const int i=3;
namespace detail
{
const int i=33;
void test()
{
std::cout<<"i:"<<i<<std::endl; // 33
std::cout<<"::detail::i"<<::detail::i<<std::endl;