title: is there a pragmatic reason to use "if (0 == p) " instead of "if (!p)"?
body: <p>I'm inclined to write if statements by using logical negation operator:</p>
  
  <pre><code>if (!p)
      some_code();
  </code></pre>
  
  <p>Some people around me tend to use explicit comparison, so that the code looks like:</p>
  
  <pre><code>if (FOO == p)
      some_code();
  </code></pre>
  
  <p>where FOO is one of <strong>false</strong>, <strong>FALSE</strong>, <strong>0</strong>, <strong>0.0</strong>, <strong>NULL</strong>, etc.</p>
  
  <p>I prefer the short form because it is:</p>
  
  <ul>
  <li><code>operator!=</code> friendly </li>
  <li><code>generic programming</code> friendly</li>
  <li>laconic (and even <em>more beautiful</em>, as for me)</li>
  </ul>
  
  <p>What are the <strong>pragmatic</strong> benefits of writing this otherwise (if any)?</p>