C++ 从匿名命名空间调用命名命名空间中的函数

C++ 从匿名命名空间调用命名命名空间中的函数,c++,C++,文件中有一个匿名名称空间和一个命名名称空间。匿名命名空间具有一些不应公开的内部函数,而命名命名空间具有一些需要访问的重载函数 //test.cpp namespace { void func() {} void crazy() { func(a); } } namespace useful { void func(int a) { //something } } 有人能建议我如何访问写在下面的命名名称空间吗?可以从匿名命名空间访问命名命名空间的函数吗?在使用和定义之前,可以在

文件中有一个匿名名称空间和一个命名名称空间。匿名命名空间具有一些不应公开的内部函数,而命名命名空间具有一些需要访问的重载函数

//test.cpp

namespace
{
void func() {}
void crazy()
{
   func(a);
}
}

namespace useful
{
void func(int a)
{
    //something
}
}

有人能建议我如何访问写在下面的命名名称空间吗?可以从匿名命名空间访问命名命名空间的函数吗?

在使用和定义之前,可以在相关命名空间中声明:

//test.cpp

namespace useful {
void func(int);
}

namespace
{
void func() {}
void crazy()
{
    useful::func(3);
}
}

namespace useful
{
void func(int a)
{
    //something
}
}

您是否声明了
有用::func(int)
?函数
::crazy()
需要在声明
有用::func()
之后定义,而不是之前。谢谢,我认为有更好的方法。