приветствую.
пытаюсь сделать такое, даже и не знаю, как обозвать... %)
в общем, хочу поиметь шаблон с переменным числом аргументов, который будет инстанцироваться так:
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 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)