title: What is bool in C/C++? A keyword or a macro?
body: <p>I referred <a href="https://stackoverflow.com/questions/3269478/what-is-bool-in-c">this question</a>, in which some of the answers suggest that <code>bool</code> is an integral type (IDEs also treat it as a keyword).  </p>
  
  <p>However, none of the answers suggest the information provided in <a href="http://www.cplusplus.com/reference/cstdbool/" rel="nofollow noreferrer">cplusplus</a>, which says that <code>bool</code> is a macro which is added through <code>&lt;cstdbool&gt;</code> (In that case, the compilers might be implicitly adding this header while compiling to allow <code>bool</code>).  Here is the g++ version of <a href="http://ideone.com/od5blR" rel="nofollow noreferrer"><code>&lt;stdbool.h&gt;</code></a>.</p>
  
  <p>So what exactly the <code>bool</code> is? A an integral type keyword or a macro?  </p>