Generar incluir el nombre del archivo en una macro

Estoy tratando de generar incluir el nombre del archivo en macro. Se supone que esto es legal en C ++:

#define INCLUDE_FILE "module_impl_win.hpp"
#include INCLUDE_FILE

esto funciona bien, pero tan pronto como trato de generar el nombre del archivo no se puede compilar

#define INCLUDE_FILE(M) M##"_impl_win.hpp"
#include INCLUDE_FILE("module")

En realidad me da una advertencia sobre MSVC2010

advertencia C4067: tokens inesperados siguiendo la directiva del preprocesador - se esperaba una nueva línea

pero no incluye el archivo.

¿Cuál es el problema? ¿Cómo puedo deshacerme de él?

Respuestas a la pregunta(3)

Su respuesta a la pregunta