title: Can I set a compile time flag to include a header?
body: <p>I have a configuration class that I would like to use for a variety of builds.  The class itself changes between builds, but the class name remains the same, as does the header file name.</p>
  
  <p>The separate versions of this class are held in separate subfolders.</p>
  
  <p>ex.  </p>
  
  <ul>
  <li><p>main/config.h</p></li>
  <li><p>main/config.cpp</p></li>
  <li><p>secondary/config.h</p></li>
  <li><p>secondary/config.cpp</p></li>
  </ul>
  
  <p>Is there a good way to, through a compile-time flag or command line option, have the build determine which header/cpp to use?  I have quite a few configurations already, and expect to have many more in the future.  I would like to avoid a long list of #ifdef/#elif/#elif/etc..</p>
  
  <p>edit: I would like to avoid having separate builds, and would like to avoid using #defines throughout the code.  I'm sorry if I didn't make that clear before! >_&lt;</p>