0
Учитывая такое небольшое приложениеТекст замены макросов
#include "stdafx.h"
class IGraph
{
};
#define NULLWrapper(n) class IG ##nWrapperNULL : public I##n
class Test : public IGraph
{
};
NULLWrapper(Graph)
{
};
int main()
{
IGnWrapperNULL gw;
IGGraphWrapperNULL gw;
return 0;
}
Почему Visual Studio 2015 говорит, что IGGraphWrapperNULL
не определено, в то время как IGnWrapperNULL
правильно? Не следует ли заменить ##n
на значение, которое я отправляю в параметры макросов?
Вы можете создать предварительно обработанный файл в Visual Studio. Это покажет вам, что видит компилятор. Обе переменные в главном не могут иметь одно и то же имя. –