Эта проблема возникает, когда я хочу получить адрес функций в макросах после знака (::
). У него всегда есть конечный пробел, который сообщает об ошибке.
Я использую G ++ в Mac OS Mojave i386.
Например, у меня есть класс:
struct A{
void b();
};
и есть макрос:
#define ACC(name) &A::name
Я использую это, чтобы получить указатель A::b
:
void(*accab)() = ACC(b);
И я получу ошибку, подобную этой:
error: cannot initialize a variable of type 'void (*)()' with an rvalue of type 'void (A::*)()'
После этого я попытался поставить скобку, но я получил это:
error: call to non-static member function without an object argument
Есть ли способ решить проблему, чтобы указатель можно было получить с помощью макроса?