Was ist der Standardwert für std::atomic?C++

Programme in C++. Entwicklerforum
Anonymous
 Was ist der Standardwert für std::atomic?

Post by Anonymous »

Ich finde, dass in der Praxis bei einer Vielzahl von C++11/C++14-Compilern ein std::atomic einen undefinierten Anfangswert hat, genau wie wenn es ein „roher“ Typ wäre. Das heißt, wir erwarten das für den Ausdruck

Code: Select all

int a;

Code: Select all

a
kann einen beliebigen Wert haben. Dies gilt auch für den Ausdruck

Code: Select all

std::atomic< int > b;

Code: Select all

b
kann auch einen beliebigen Wert haben. Anders ausgedrückt:

Code: Select all

std::atomic< int > b;         // b is undefined
ist nicht gleichbedeutend mit

Code: Select all

std::atomic< int > b{ 0 };    // b == 0
oder an

Code: Select all

std::atomic< int > b{};       // b == 0
weil in den letzten beiden Fällen b auf einen bekannten Wert initialisiert wird.

Meine Frage ist einfach: Wo in der C++11- oder C++14-Spezifikation ist dieses Verhalten dokumentiert?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post