адрес метода как параметр шаблона
От: niXman Ниоткуда https://github.com/niXman
Дата: 06.08.13 13:32
Оценка:
приветствую.

пытаюсь сделать такое, даже и не знаю, как обозвать... %)

в общем, хочу поиметь шаблон с переменным числом аргументов, который будет инстанцироваться так:
struct A {
   void m1();
   int m2();
};

type<&A::m1, &A::m2> t;

а использоваться он будет так:
A a;
t.invoke(
    a /* object */
   ,0 /* method ID. 0 == A::m1(), 1 == A::m2() */
   ,  /* args if needed */
);

и тут у меня ступор случился %)
подскажите, какой должна быть декларация шаблона? совсем нет мыслей...

зы
идентификатор метода('method ID'), может быть как run-time значением, так и compile-time.

зызы
собственно говоря, даже не уверен в том, может ли адрес метода использоваться в качестве параметра шаблона... точнее сказать — почти уверен — что не может. но почему? насколько мне известно, адреса методов(смещения относительно this) известны в compile-time. в run-time же, подставляется корректное значение this.
или что?
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.