Показать сообщение отдельно
Старый 04.05.2007, 18:20     # 18
crawler
Full Member
 
Регистрация: 11.12.2002
Сообщения: 864

crawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собой
PSyton, попытался расширить с помощь шаблонов - умудрился вышибить компайлер с ексепшеном послезавтра продолжу эксперимент - сделаю без расширения

Flexz, не это то что надо. Я тоже наткнулся на несколько решений - но чтобы их исползовать надо понять как - а весь boost написан так, что мне проще написать самому, чем разобраться как его пользовать.

--------------------------------
Сделал. В интерпретаторе хранятся пойнтеры на базисный класс, темплейтом сделал регистрацию с разным количеством входных переменных, и промежуточный класс тоже темплейтный. Вызывается виртуальные метод "Call" базисного класса, и из-за инициации наследников подходящими методами все работает.
Таким образом вызов выглядит так:
Код:
C1 c1;
C2 c2;

Interpreter i;

i.Register<C1> ( &c1, 
    "m11",&C1::m1, 
    "m12",&C1::m2,
    NULL );
i.Register<C2> ( &c2, 
    "m21",&C2::m1, 
    "m22",&C2::m2,
    "m23",&C2::m4,
    NULL );

i.Call("m23",12);
Огромное спасибо всем участникам дискуссии.

Последний раз редактировалось crawler; 14.05.2007 в 14:23. Причина: Update
crawler вне форума