Generate include file name in a macro
c++, include, macros
Solution
I'd do this using a helper quoting macro. Something like this will give you what you want:
#define QUOTEME(M) #M
#define INCLUDE_FILE(M) QUOTEME(M##_impl_win.hpp)
#include INCLUDE_FILE(module)
Problem
I'm trying to generate include file name in macro. This is supposed to be legal in C++: ``` #define INCLUDE_FILE "module_impl_win.hpp" #include INCLUDE_FILE ``` this works fine, but as soon as I try to generated file name it failes to compile ``` #define INCLUDE_FILE(M) M##"_impl_win.hpp" #include INCLUDE_FILE("module") ``` Actually it gives me warning on MSVC2010 warning C4067: unexpected tokens following preprocessor directive - expected a newlin but it doesn't include the file. What is the problem? How can I get rid of it?