два строковых аргумента => параметры-типы шаблона
От: kinoman http://pseudo-tech-notes.blogspot.com/
Дата: 27.09.11 19:27
Оценка:
Я достаточно давно не держал в руках 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++.
?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.