title: How do I idiomatically convert a BOOL to a bool?
body: <p>The <code>&lt;windows.h&gt;</code> header comes with its own <code>BOOL</code> type. Peeking at the implementation, it seems <code>FALSE</code> is just a macro for <code>0</code>, and <code>TRUE</code> is just a macro for <code>1</code>, but I'm not sure this is specified.</p>
  
  <p>What is the idiomatic way to convert a <code>BOOL</code> to a <code>bool</code>? I can imagine lots of possible ways:</p>
  
  <pre><code>bool a = static_cast&lt;bool&gt;(x);
  
  bool b = x ? true : false;
  
  bool c = (x == TRUE);
  
  bool d = (x != FALSE);
  
  bool e = !!x;
  
  // ...
  </code></pre>