Проблема при использовании #define в VS 2019

128
28 марта 2022, 01:40

Есть некоторый код:

#define createClassEvent(classname, mainclass) class classname : public EventFunction {\
private:\
mainclass* cl;\
void(mainclass:: * func)();\
public:\
virtual void Throw() override {\
    if( cl != nullptr ) { (cl->*func)(); }\
}\
DisplayEvent(mainclass * d, void (mainclass:: * f)()) {\
    cl = d;\
    func = f;\
}\
};

class EventFunction {
private:
public:
virtual void Throw() {}
EventFunction() {}
~EventFunction() {}
};

class Display;
class BlackScreenEffect;

createClassEvent(DisplayEvent, Display)
createClassEvent(BSEevent, BlackScreenEffect)

Моя проблема заключается в том, что когда я вызываю createClassEvent(BSEevent, BlackScreenEffect) - компилятор говорит, что требуется закрывающая круглая скобка. Я пробовал менять их местами, менять названия, но компилятор почему-то принимает только createClassEvent(DisplayEvent, Display). В чём здесь может быть проблема?

Answer 1

Дело в

DisplayEvent(mainclass * d, void (mainclass:: * f)()) {\
^^^^^^^^^^^^
    cl = d;\
    func = f;\
}\

Вероятно, имелось в виду

classname(mainclass * d, void (mainclass:: * f)()) {\
    cl = d;\
    func = f;\
}\
READ ALSO
Поломался QT Creator 5.10

Поломался QT Creator 5.10

Версия IDE: Qt Creator 45

108
Не видит почему то идентификатор

Не видит почему то идентификатор

Как обьявить переменную arrrDoubt в функции? Вроде скармливаю, а оно всё равно не видит

219
Как отобразить состояние батарейки на desktop приложении в qml?

Как отобразить состояние батарейки на desktop приложении в qml?

Хочу отобразить состояние вайфая, батареи итдЕсть модуль QtMobility (там по описанию есть то что мне нужно )

96
Как ускорить COUNT запрос?

Как ускорить COUNT запрос?

Подскажите как можно ускорить запрос, генерация страницы занимает 34 секундыВ базе 700 тысяч записей

264