【发布时间】:2017-03-25 22:28:18
【问题描述】:
我需要创建一个存储多个用户定义类型的类。它应该根据需要返回其中之一。有没有办法实现一个函数来返回所有类型?
请注意:我不能使用 Boost 库。我需要在 Visual Studio 中实现
class One {};
class Two {};
class Three {};
enum Type
{
OneType,
TwoType,
ThreeType
};
class GenericType
{
template <typename T> // --- How to implement this function
T getValue(Type type)
{
switch(type)
{
case One: return oneType; // Error
case Two: return twoType;
case Three: return threeType;
}
}
shared_ptr<OneType> oneType;
shared_ptr<TwoType> twoType;
shared_ptr<ThreeType> threeType;
Type m_type;
};
【问题讨论】:
标签: c++ templates types type-conversion