Gerar nome do arquivo de inclusão em uma macro

Estou tentando gerar incluir o nome do arquivo na macro. Isso deveria ser legal em C ++:

#define INCLUDE_FILE "module_impl_win.hpp"
#include INCLUDE_FILE

isso funciona bem, mas assim que tento gerar o nome do arquivo, ele falha na compilação

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

Na verdade, isso me dá um aviso no MSVC2010

aviso C4067: tokens inesperados após a diretiva de pré-processador - esperava um newlin

mas não inclui o arquivo.

Qual é o problema? Como posso me livrar disso?

questionAnswers(3)

yourAnswerToTheQuestion