title: C++ preprocessor directive limits
body: <p>I have a C++ pre-processor directive that is something like this:</p>
  
  <pre><code>#if (SOME_NUMBER != 999999999999999)
  // do stuff
  #endif
  </code></pre>
  
  <p>999999999999999 is obviously greater than 2<sup>32</sup>, so the value won't fit into a 32-bit integer. Will the preprocessor correctly use a 64-bit integer to resolve the comparison, or will it truncate one or both of the values?</p>