Имеют ли объекты встроенных типов, инициализированные по умолчанию в безымянном пространстве имен, четко определенное значение по умолчанию?
Насколько я знаю, мы должны использовать безымянное пространство имен для глобальных объектов, которые мы хотим сделать локальными для единицы перевода, а не определять эти объекты как глобальные объекты. Таким образом, объекты там неявно статичны.
Интересно, можно ли определить объект встроенного типа, например
Вот пример:
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";
}