title: Do compilers assume that "this" is not nullptr in debug mode?
body: <p>I wonder if placing <code>assert( this != nullptr );</code> on every member function is a good idea. I believe that the compiler can just decide to ignore this assert entirely, as it is <em>assumed</em> that <code>this</code> cannot be null, so the assert is always true and can be resolved at compile-time.</p>
  
  <p>But if the compiler does not make this assumption, then this assert is pretty useful to catch problems early.</p>
  
  <p>Do compilers assume this?</p>