title: Macro on cpp library included is ruining the rest of the codebase
body: <p>I'm working on an application that includes this library, let's call Snap.h.</p>
  <p>I found that compilation fails if Snap.h is not the last on the includes statements. And on closer look, I find this code in a header file included by Snap.h</p>
  <pre><code>#define Try try {
  #define Catch } catch (PExcept Except){ErrNotify(Except-&gt;GetMsgStr());}
  #define CatchFull } catch (PExcept Except){ErrNotify(Except-&gt;GetStr());}
  #define CatchAll } catch (...){}
  </code></pre>
  <p>Basically this lets try and catch blocks to be used as statements, like so</p>
  <pre><code>Try;
  &lt;some code&gt;
  Catch;
  </code></pre>
  <p>You can see how this is an issue, these generic macros collide with other libraries very easily.</p>
  <p>Unfortunately this is tens of thousands of lines of very complicated code and the application I'm working on is built around this library. Its not easily changed.</p>
  <p>Cpp is not my strong suit, is there a way to limit the effects of macros in an include?</p>