是否有可能编写一个(内联?)C++函数,在那里我们接受一个枚举作为输入并返回一个可以在模板声明中使用的类类型?C++函数,接受枚举并返回一个typedef类类型用于模板?
我的直觉是,由于枚举类型的数量有限,应该有可能吗?
enum MyEnumType { A, B, C };
class MyClassA { };
class MyCLassB { };
class MyClassB { };
template class<T>
class ATemplatedClass {
// ...
};
NotSureWhatReturnType ConvertEnumToClassType(MyEnumType type) {
switch (type) {
case A: return MyClassA;
case B: return MyClassB;
case C: return MyClassC:
default: throw;
}
}
MyEnumType type = GottenSomewhere();
auto class_type = ConvertEnumToClassType(type);
ATemplatedClass<class_type> is_this_possible;
也许你想看看多态的类层次结构和工厂? –
您应该解释您想解决的**真实**问题,而不是预期的解决方案。你所问的问题不能直接完成,但还有其他的东西可能适合这个问题(例如,从枚举映射到一个类型的特征) –