Здравствуйте, Erop, Вы писали:
E>Здравствуйте, kinoman, Вы писали:
K>>Да я собственно уже рассказал вроде вполне подробно в последнем примере. Больше добавить по сути нечего. Просто ещё раз уточню — в моём коде шаблон A<T1,T2> мы можем править/заменять на что-то другое, но типы-параметры этого шаблона(T1_1,...T1_X,T2_1,...,T2_X) для нас неприкасаемы (в том плане что те классы мы править не можем).
E>Мне кажется,что я понял тебя неверно.
E>Но идеятакая, что типа пишешь базу абстрактную, которая умепт вызывать первый иетод через виртуальный метод, потом пишншь шаблоного наследника, который всёумеет строить и потом кмент всё вызватть из виртуальног метода того самого.
E>Возможно будет удобно сделать два метода. Один "сднлать это", а другой "проинициализтровать".
E>Потом пишнм шаблон класса,который имеет статический метод, создания нужного наследгика + метод инициализации.
E>А экземпляр этого инициализатора параметризуем строкой из ппрпметров командгой строки.
E>И, типа,нужен тебе тип ХХХ — создаёшь статический экземпляр регистратора, ппраметризованный ХХХ, от нужной строки.Он инстанцируется и регитсвой метод создания в мапе из строк в функции.
E>Потом ищешь в этой мапе строку,зовёшь функцию и ролучпешь объеет, реализующий нужный интнрфейс, а экземпляр ХХХ будет полем этого объекта...
Угу понял. Да примерно так и сделаю. Обойдусь только кодогенерацией макросом (ну не писать же несколько сотен строк руками для создания нужного наследника в зависимости от двух строковых параметров), без boost::mpl (и слава богу

).