Какое значение по умолчанию для std :: atomic?
Я обнаружил, что на практике с различными компиляторами C ++ 11 / C ++ 14std::atomic
имеет неопределенное начальное значение, как если бы это был «сырой» тип. То есть мы ожидаем, что для выражения
int a;
a
может иметь любое значение. Также оказывается, что для выражения
std::atomic< int > b;
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 это поведение задокументировано?