Sind C / C ++ - Grundtypen atomar?

Sind C / C ++ - Grundtypen wieint, double usw., atomar, z.B. threadsicher?

Sind sie frei von Datenrennen; Wenn also ein Thread auf ein Objekt eines solchen Typs schreibt, während ein anderer Thread davon liest, ist das Verhalten dann genau definiert?

Wenn nicht, hängt es vom Compiler oder etwas anderem ab?