title: What is the difference between explicit atomic load/store and usual operator= and operator T?
body: <p>Consider these two variants:</p>
  
  <pre><code>std::atomic&lt;int&gt; a;
  a = 1;
  int b = a;
  </code></pre>
  
  <p>and</p>
  
  <pre><code>std::atomic&lt;int&gt; a;
  a.store(1);
  int b = a.load();
  </code></pre>
  
  <p>I see from the documentation that the second one is fully atomic, but I don't understand when I should use which and what's the difference in detail.</p>