Я достаточно давно не держал в руках c++(писал в основном на java) и видимо мозги повернулись слегка по-другому. Так что вопрос видимо не особо интеллектуальный.
Задача:
Есть шаблон template class A<P1,P2> ...
На вход программы приходят два строковых аргумента, первый из них соответствует некому типу T1, второй соответственно T2 и мы должны получить
A<T1,T2> avar;
avar.method1();
avar.method2();
.
но не таким способом:
if (arg1=="argT1_1" && arg2=="argT2_1") {
A<T1_1,T2_1> avar;
avar.method1();
avar.method2();
}
else if (arg1=="argT1_1" && arg2=="argT2_2") {
A<T1_1,T2_2> avar;
avar.method1();
avar.method2();
}
else ...
.
Вариантов комбинаций P1 и P2 достаточно много (около 100 и это не предел видимо).
Как бы получше это сделать?
------
Дополнительный вопрос:
правильно я понимаю что export template помер не успев ожить? Так что эта статья актуальна(если конкретно для gcc) и других вариантов кроме "модели включения" и "модели явного воплощения" нет:
http://rsdn.ru/article/cpp/templmod.xmlАвтор(ы): Валерий Лаптев
Дата: 30.10.2004
В этой статье рассказывается о методах отделения реализации шаблона от его интерфейсной части и о том, как можно заставить это работать на популярных компиляторах наподобие MS Visual C++.
?