title: What exactly is a 'side-effect' in C++?
body: <p>Is it a standard term which is well defined, or just a term coined by developers to explain a concept (.. and what is the concept)? As I understand this has something to do with the all-confusing <a href="https://stackoverflow.com/questions/9562562/in-c11-how-to-determine-what-is-sequenced-before-others">sequence points</a>, but am not sure.</p>
  
  <p>I found one definition <a href="http://www.learncpp.com/cpp-tutorial/33-incrementdecrement-operators-and-side-effects/" rel="noreferrer">here</a>, but doesn't this make each and every statement of code a side effect?</p>
  
  <blockquote>
    <p>A side effect is a result of an operator, expression, statement, or function that persists even after the operator, expression, statement, or function has finished being evaluated.</p>
  </blockquote>
  
  <p><strong>Can someone please explain what the term 'side effect' formally means in C++, and what is its significance?</strong></p>
  
  <p>For reference, some questions talking about side effects:</p>
  
  <ol>
  <li><a href="https://stackoverflow.com/questions/7784774/is-comma-operator-free-from-side-effect">Is comma operator free from side effect?</a></li>
  <li><a href="https://stackoverflow.com/questions/1152333/force-compiler-to-not-optimize-side-effect-less-statements">Force compiler to not optimize side-effect-less statements</a></li>
  <li><a href="https://stackoverflow.com/questions/7762988/side-effects-when-passing-objects-to-function-in-c">Side effects when passing objects to function in C++</a></li>
  </ol>