title: Can atomic types be assigned the value of another atomic variable?
body: <p>In Concurrency In Action, it is stated:</p>
  <blockquote>
  <p>All operations on an atomic type are defined as atomic, and assignment
  and copy-construction involve two objects. A single operation on two
  distinct objects can’t be atomic.</p>
  </blockquote>
  <p>But I'm a little confused</p>
  <pre><code>atomic&lt;int&gt; i1, i2;
  i1 = 0;
  i2 = 1;
  i1 = i2;          // error
  i1.store(i2);  // but it works, is this operation atomic?
  </code></pre>
  <p>The last line of the code completes the assignment, it also involved two objects</p>