Qual é o valor padrão para um std :: atomic?
Acho que, na prática, com uma variedade de compiladores C ++ 11 / C ++ 14, umstd::atomic
tem um valor inicial indefinido, exatamente como teria se fosse do tipo "bruto". Ou seja, esperamos que para a expressão
int a;
a
pode ter qualquer valor. Também é verdade que, para a expressão
std::atomic< int > b;
b
também pode ter qualquer valor. Para dizer de outra maneira,
std::atomic< int > b; // b is undefined
não é equivalente a
std::atomic< int > b{ 0 }; // b == 0
ou para
std::atomic< int > b{}; // b == 0
porque nos dois últimos casosb
é inicializado com um valor conhecido.
Minha pergunta é simples: onde na especificação C ++ 11 ou C ++ 14 esse comportamento é documentado?