Я хочу разработать код, в котором мы можем хранить переменную шаблона в структуре карты шаблона. Я когда-то исследовал и увидел, что если мы хотим создать некоторую карту для хранения переменной шаблона, мы должны сначала реализовать с BaseClass, который не является шаблоном. Я могу добиться этого, но с другой стороны я не нашел, как вернуть это обратно из этой карты, так как у нас нет информации о типах, которые содержит шаблон.
Код, который выполняется как это ..
public ref class BaseClass{
//some data members as public.
}
template <class TypeA= ClassA,class TypeB= ClassB>
public ref class MainClass: public BaseClass{
public:
DataType<TypeA, TypeB> ^ m_data; //this DataType class is also template type taking class TypeA= ClassA,class TypeB= ClassB
};
class SomeClass{
cliext::map<System::String^, BaseClass<>^>^ m_map;
void Setter()
{
DataType<TypeA, TypeB> ^ var = gcnew DataType<AType>();
m_map["AType"] = var ;
DataType<TypeA, TypeB> ^ var1 = gcnew DataType<AType, BType>();
m_map["AType_BType"] = var1 ;
}
//not sure how to design the getter()
void CalculateStuff(SystemString^ str){
BaseClass^ b = m_map[str];
//Not not sure how to get m_data from it, as I am not sure how to downcast dynamically
}
}
Я не хочу использовать любую другую библиотеку, как Boost. Я немного новичок в CPP / CLI и шаблон. Может ли кто-нибудь помочь мне, как мы можем достичь этого