¿Cuál es el valor predeterminado para un std :: atomic?
Creo que en la práctica, con una variedad de compiladores C ++ 11 / C ++ 14, unstd::atomic
tiene un valor inicial indefinido como si fuera un tipo "sin procesar". Es decir, esperamos que para la expresión
int a;
a
puede tener cualquier valor También resulta ser cierto que para la expresión
std::atomic< int > b;
b
También puede tener algún valor. Para decirlo de otra manera,
std::atomic< int > b; // b is undefined
no es equivalente a
std::atomic< int > b{ 0 }; // b == 0
o para
std::atomic< int > b{}; // b == 0
porque en los dos últimos casosb
se inicializa a un valor conocido.
Mi pregunta es simple: ¿en qué parte de la especificación C ++ 11 o C ++ 14 se documenta este comportamiento?