title: Avoid macro to be usable from client code
body: <p>I'm currently working on a header only library and I'd like to be able to use some macros without them being usable from client code. Example:</p>
  
  <pre><code>// library_header1.h
  
  #define MACRO_NUMBER_1(__X__) doSomethingWith(__X__) // etc...
  
  class LibraryClass1
  {
      // We'll use the macro somewhere in here.
  };
  </code></pre>
  
  <p>Now, if I include library_header1.h i'm able to use MACRO_NUMBER_1. Is there any way I can avoid that?</p>