Definition of "atomic object" : <p>In standard jargon of C and C++, the phrase "<strong>atomic object</strong>" means "<em>object</em> of <em>atomic type,</em>" does it not?</p>

<p>No standard will explicitly define every two-word phrase, so one does not fault the C and C++ standards for omitting explicit definition of this one. Nevertheless, when I read in the C++17 standard (draft <a href="http://open-std.org/JTC1/SC22/WG21/docs/papers/2017/n4659.pdf" rel="noreferrer">here</a>), sect. 4.7.1(4), that "all modifications to a particular atomic object <em>M</em> occur in some particular total order, called the <em>modification order</em> of <em>M</em>"&mdash;and when the standard repeatedly employs similar language to delimit ever more precise logic for concurrency&mdash;I would like to be sure that I am not inadvertently misunderstanding.</p>

<p>Do I assume correctly that the phrase "atomic object" means</p>

<ul>
<li><em>object</em> of <em>atomic type</em>?</li>
</ul>

<p>The only plausible alternative I can imagine would be that the phrase instead meant</p>

<ul>
<li>properly aligned <em>object</em> small enough that hardware could handle it atomically.</li>
</ul>

<p>Which is it, please?</p>

<p>(Note: I tag this question both C and C++ because, when it comes to atomics, the two standards use almost identical language. For this reason, an expert in either language can answer as far as I know. If for some reason I am mistaken, then please remove the C tag and retain the C++.)</p>

<p>Reference: see also <a href="https://stackoverflow.com/q/52606524/1275653">this question,</a> for which my question is preliminary.</p>
