Имеют ли объекты встроенных типов, инициализированные по умолчанию в безымянном пространстве имен, четко определенное значение по умолчанию?

Насколько я знаю, мы должны использовать безымянное пространство имен для глобальных объектов, которые мы хотим сделать локальными для единицы перевода, а не определять эти объекты как глобальные объекты. Таким образом, объекты там неявно статичны.

Интересно, можно ли определить объект встроенного типа, например без инициализатора (инициализация по умолчанию) имеет то же определенное значение, что и определенное явно ?

Вот пример:

      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";
}

0 ответов

Другие вопросы по тегам