title: Namespace-like functionality for macros
body: <p>In my program, there are a lot of function-like macros, some of them having the same name and parameters. I want to separate them with some rules, kind of like namespaces, but I know we can't group macros with namespaces.</p>
  
  <p>Is there another way to do this?</p>
  
  <p>Note: the macros are not just simple assignments, so many can't be replaced with <code>const</code> variables.</p>
  
  <p>For example, if have two macros:</p>
  
  <pre><code>#define A(B, C, D)  \
  {                   \
      D = B * C;      \
  }
  
  #define A(B, C, D)  \
  {                   \
      D = B / C;      \
  }
  </code></pre>
  
  <p>I want to split them with some namespaces:</p>
  
  <pre><code>/* Pseudocode */
  namespace Multiply {
      #define A(B, C, D)  \
      {                   \
          D = B * C;      \
      }
  }
  
  namespace Divide {
      #define A(B, C, D)  \
      {                   \
          D = B / C;      \
      }
  }
  </code></pre>
  
  <p>Then be able to call <code>Multiply::A</code> and <code>Divide::A</code> in my program.</p>