Хорошо. Пусть нельзя получить QMetaMethod по указателю на метод...
Как тогда реализовать макрос DECLARE_METHOD, чтобы замапить "указатель на метод" на "имя метода"?
C++ (Qt)
class ISomeClass
{
public:
virtual void someMethod() = 0;
};
DECLARE_METHOD(&ISomeClass::someMethod)
и где-то можно было вызвать:
C++ (Qt)
QString name = getMethodName(&ISomeClass::someMethod);
P.S такая реализация не собирается:
C++ (Qt)
template<typename Func>
struct MyMetaMethod
{
};
#define DECLARE_METHOD(Func) \
template <> \
struct MyMetaMethod< Func > \
{ \
static QString name() {return #Func;} \
}; \
template<typename Func>
QString getMethodName(Func)
{
return MyMetaMethod<Func>::name();
}
expected a type, got '&ISomeClass::someMethod'
struct MyMetaMethod< Func >