Информация об изменениях

Сообщение адрес метода у объекта от 18.04.2017 13:16

Изменено 18.04.2017 13:17 niXman

адрес метода у объекта
сабж, как обычно, странный...

дано:
struct type {
   void m0() {}
   void m1(int) {}
};

template<T, typename ...Types>
void exec(T v, Types &&... args) {
   v(args...);
}

int main() {
   type t;
   exec(t.m0);
   exec(t.m1, 33);
}

суть: хочу передать в функцию exec() что-то одно, чтоб получить тип + сигнатуру + адрес метода

т.е. что я должен сделать, чтоб использовать вызов типа exec(t.m1, 33); и при этом проиходил вызов t.m1(33);?

спасибо.
адрес метода у объекта
сабж, как обычно, странный...

дано:
struct type {
   void m0() {}
   void m1(int) {}
};

template<T, typename ...Types>
void exec(T v, Types &&... args) {
   v(args...);
}

int main() {
   type t;
   exec(t.m0);
   exec(t.m1, 33);
}

суть: хочу передать в функцию exec() что-то одно, чтоб получить тип + сигнатуру + адрес объекта + адрес метода

т.е. что я должен сделать, чтоб использовать вызов типа exec(t.m1, 33); и при этом проиходил вызов t.m1(33);?

спасибо.