при использовании операторов «.», «->» или «-> *» есть ли способ получить имя вызываемой функции (или имя переменной в случае «-> *»и все идет.
РЕДАКТИРОВАТЬ: Просто чтобы прояснить, я не говорю об отражении, но больше что-то в строке ' function ' в основном я хочу создатьперегрузка оператора (предпочтительно одного из трех упомянутых), который осведомлен о правой стороне оператора
То, что я пытаюсь сделать, это в основном преобразование времени компиляции
obj->Function(a,b);
до
obj->Map("Function")(a,b); //Where Map(string) returns a function pointer
РЕДАКТИРОВАТЬ: Просто для дальнейшего уточнения, Требование состоит в том, что код должен выглядеть как один из этих трех
obj.SomeMethod(args);
obj->SomeMethod(args);
obj->*SomeMethod(args);
любое решение, которое подходит, является приемлемым, если SomeMethod может быть любым допустимым идентификатором (т. Е. Любой вещью, которая может использоваться в качестве имени функции), и решение должно будет использовать SomeMethod в качестве поиска на карте.часть уже реализована, это натолько переосмысление того, что похоже на вызов метода, для которого я ищу решение.
, если это (как я боюсь) не может быть сделано, тогда будет принято любое решение с новым синтаксисом "оператора".Например, obj __ SomeMethod (args);до тех пор, пока поиск основан на RHS «оператора»