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?

Original source

Related problems