首页 > 解决方案 > 在同一范围内重新定义命名空间名称会破坏 ODR 规则吗?

问题描述

在 C++ 入门 ch 18 上。命名空间:

“与任何名称一样,名称空间名称在定义名称空间的范围内必须是唯一的。名称空间可以在全局范围内或另一个名称空间内定义。它们可能不在函数或类内定义。”

但我猜如果没有错的话;在同一范围内多次定义命名空间不会破坏 ODR,而是重新打开该命名空间并可能添加到它。

这是我的例子:

namespace fooNS{
    int x = 5;
}

namespace fooNS{
    int y = 10;
}


int main(){

    std::cout << fooNS::x << '\t' << fooNS::y << '\n';

}

标签: c++namespaces

解决方案


推荐阅读