我创建了用于表示参数的模板类。每个参数都由名称和一个值表示。此类也具有此类成员变量的吸气剂。我想存储此类的不同实例,例如int和double,以便能够通过其名称查找参数。我知道,我无法在一个容器中存储不同模板类型的Parameter类的不同实例。我的想法是创建抽象基类,但我想这是不可能的,因为对于模板类的double和int参数化,我必须获取值并且返回类型不相同。如果有任何想法可以实现我的目标,我将不胜感激。
template <typename ValueType>
class Parameter
{
public:
typedef ValueType value_type;
template <typename T>
explicit Parameter(const std::string& name, const T& value)
{
static_assert(std::is_same<T, Parameter::value_type>::value, "Types are not the same");
this->name = name;
this->value = value;
}
const std::string& getName() const;
const value_type& getValue() const;
private:
std::string name;
ValueType value;
};
template <typename T>
const std::string& Parameter<T>::getName() const
{
return name;
}
template <typename T>
const T& Parameter<T>::getValue() const
{
return value;
}