在未命名命名空间中默认初始化的内置类型对象是否具有明确定义的默认值?

问题描述

AFAIK 我们应该为全局对象使用一个未命名的命名空间,我们想让它们成为翻译单元的本地对象,而不是将这些对象定义为 static 全局对象。所以那里的对象是隐式静态的。

我想知道在没有初始化器(认初始化)的情况下定义像 int 这样的内置类型的对象是否具有与显式定义的 static 相同的定义值?

这是一个例子:

namespace ns{
    namespace {
        int x; // static
    }
    int y; // local non-static. // indeterminated value (UB if its value used) 
}

int main(){
    std::cout << ns::x << "\n";
    std::cout << ns::y << "\n";
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)