#define PATH "yagh/headers/"
#define FILNAME "includefile"
#define CONCAT(a__, b__) CONCAT_DO(a__, b__)
#define CONCAT_DO(a__, b__) a__##b__
#define CONCATTHREE(a__, b__, c__) CONCAT(CONCAT(a__, b__), c__)
#define STRINGIFY(a__) #a__
#include STRINGIFY(CONCATTHREE(PATH ,FILNAME ,.h));
Этот макрос отлично работает в компиляторе VS, но не компилируется в компиляторе GCC:
Ошибка: ошибка: вставка "/" и "includefile" не дает действительный токен предварительной обработки
и для некоторых включаемых файлов выдает ошибку:
Ошибка: вставка "includefile" и "."не дает действительный токен предварительной обработки