c++ - How can I #include a file whose name is built up from a macro? -


On a cross-platform project, I want to include a # header file named after the platform, There is a #define macro for.

For example,

  #define PLATFORM win32  

I want

  #include For "engine \ win32 \ devices_win32.h"  

  #define PLATFORM linux  

I want to

#include "engine \ linux \ devices_linux.h"

I'm going with Richard Pennington's answer, zero to one line code - It works for me!

  #define PLATFORM Linux #define xstr (x) #x #define str (x) xstr (x) #define sub (x) x #include str (sub (engine / platform / device_ ) PLATFORM.h)  

  #define PLATFORM Linux #define xstr (x ) #x #define str (x) xstr (x) #define sub (x) x #define FILE str (sub / engine / platform / devices_) platforms h) #include FILE  

I'm not sure if I use it, though. ;-) I had to use linux instead of linux because Linux is defined as 1 in my compiler.


Comments

Popular posts from this blog

c# - How to capture HTTP packet with SharpPcap -

php - Multiple Select with Explode: only returns the word "Array" -

php - jQuery AJAX Post not working -