Какое значение по умолчанию для std::atomic?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Какое значение по умолчанию для std::atomic?

Сообщение Anonymous »

Я обнаружил, что на практике при использовании различных компиляторов C++11/C++14 std::atomic имеет неопределенное начальное значение, как если бы это был «необработанный» тип. То есть мы ожидаем, что для выражения
может иметь любое значение. Также оказывается верным, что для выражения

Код: Выделить всё

std::atomic< int > b;
также может иметь любое значение. Другими словами,

Код: Выделить всё

std::atomic< int > b;         // b is undefined
не эквивалентен

Код: Выделить всё

std::atomic< int > b{ 0 };    // b == 0
или

Код: Выделить всё

std::atomic< int > b{};       // b == 0
потому что в последних двух случаях b инициализируется известным значением.

Мой вопрос прост: где в спецификации C++11 или C++14 документировано такое поведение?

Подробнее здесь: https://stackoverflow.com/questions/363 ... -stdatomic
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»