Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Конфликт RTTI c template <T>


Автор: PochtiCoder 14.12.2008, 21:13
Проблема. Пишу программу, которая активно использует возможности RTTI, при этом понадобилось использовать шаблонные классы, в результате получился конфликт:

Код

template <typename T> // ну или <class T>// кто нормально объяснит в чем разница, тоже буду благодарен
class TMeClass : public TPersistent
{
private:
  T fValue;
__published:
[color=red]__property T Value = { read = fValue };[/color]
};


при компиляции выдается ошибка
[C++ Error] *.h(112): E2109 Not an allowed type

Я предпологаю почему появляется такая ошибка:
для всех полей, методов и свойств, находящихся в __published области
Билдер пишет доп. информацию в метокласс, при чем делать он это может только для для примитивных типов, для String и для классов унаследованных от TObject.
А в template я могу пихнуть все что захочу.

Вот собственно и вопрос: как объяснить компилятору, что я буду использовать только допустимые для него значения T?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)