C ++ Получить тип класса внутри статической функции

Внутри статической функции-члена мне нужно получить тип.

class MyClass
{
     public:
         static void myStaticFunc();
     ...
};

И затем в реализации, которую я хочу иметь:

void MyClass::myStaticFunc()
{
     // Get MyClass as a type so I can cast using it
     (get_type_from_static_function()*)someOtherVariable;
}

Возможно ли это вообще? Обычно я бы использовал что-то из typeinfo для объекта, но у меня нет this для работы.

Я не хочу просто использовать (MyClass *) , потому что это происходит внутри макроса, и я хотел бы сделать его как можно более простым, чтобы его можно было вызывать без имени класса. .

Если это поможет, я использую QT, но не могу найти никаких макросов для получения текущего класса. Он не обязательно должен быть программным - это может быть макрос.

Ура!

РЕДАКТИРОВАТЬ: Вот фактическая функция макроса:

#define RPC_FUNCTION(funcName) \
static void rpc_##funcName(void* oOwner, RpcManager::RpcParamsContainer params){ ((__class__*)oOwner)->funcName(params); }; \
void funcName(RpcManager::RpcParamsContainer params);

Затем я вызываю RPC_FUNCTION (foo) в объявлении класса. Я хочу, чтобы __ class __ было объявлением любого класса, в котором я нахожусь. Я хорошо знаю, что могу просто добавить className после funcName, но я хочу, чтобы это было как можно проще, когда я действительно использую его. Мой RPC-менеджер вызывает rpc_foo и передает указатель на объект класса, в котором я его объявил. По сути, мне нужно знать, как определить фактический класс этого параметра void *.

6
задан cleversoap 7 November 2011 в 01:47
поделиться