我正在尝试了解匿名命名空间。现在我的代码的要求是这样的:
#file.c
namespace X
{
void foo(){int x = bar(2);}
} //X
namespace
{
int bar(int x);
} //namespace
Run Code Online (Sandbox Code Playgroud)
或者
#file.c
namespace X
{
void foo(){int x = bar(2);}
namespace
{
int bar(int x);
} // namespace
} // X
Run Code Online (Sandbox Code Playgroud)
我试图向前声明 foo:
namespace X {
int bar(int);
...
Run Code Online (Sandbox Code Playgroud)
但到目前为止,这只会导致链接器错误。
匿名命名空间在每个翻译单元中是一致的,您可以像任何其他命名空间一样重新打开它:
namespace X
{
namespace
{
int bar(int x);
} // namespace
void foo() { int x = bar(2); }
namespace
{
int bar(int x) { return 2 * x; }
} // namespace
} // X
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |