执行函数以影响不同的模板类实例
Execute a function to affect different template class instances
我有一个复杂的问题,我需要帮助。
我有一个基本案例,
class ParamBase
{
string paramValue;
//...
}
以及一堆具有不同模板参数的类模板。
template <typename T>
class Param : public ParamBase
{
T value;
//...
}
现在,Param 的每个实例都有不同的模板参数,double、int、string...等。
为了方便起见,我有一个指向其基类指针的向量,其中包含已创建的所有实例:
vector<ParamBase*> allParamsObjects;
问题是:
我如何运行单个函数(全局或成员或任何内容,您的选择),该函数使用不同的模板参数转换所有这些不同实例的字符串 paramValue,并将转换结果保存到 Param::value 中的适当类型。这必须对保存在向量allParamsObjects中的所有对象运行。
因此,如果第一个参数的模板参数是双精度的,则 paramValue 必须转换为双精度并保存在 value 中;如果第二个参数的参数是 int,那么第二个参数的 paramValue 必须转换为 int 并保存在 value 中......等。
任何帮助将不胜感激:-)
像这样的东西?
class ParamBase {
std::string paramValue;
public:
virtual void convert() = 0;
};
template <typename T>
class Param : public ParamBase
{
T value;
public:
virtual void convert() {
std::stringstream ss(paramValue);
ss >> value;
}
};
声明一个Convert
ParamBase
抽象方法,在每个模板派生类中实现它以将字符串转换为值,然后在循环中调用该方法。
相关文章:
- 如何在c++中为模板函数实例创建快捷方式
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 对象实例化调用构造函数的次数太多
- 错误 没有与参数列表匹配的重载函数"getline"实例
- 如何使用非默认构造函数实例化模板化类
- 为什么 gcc 和 clang 为函数模板的实例化生成不同的符号名称?
- 重载 -> shared_ptr 个实例中的箭头运算符<interface>,接口中没有纯虚拟析构函数
- 将可变参数函数的参数封装在类实例中
- 模板化类构造函数的模板实例化
- 在 c++ 中的模板实例化中使用带有构造函数的类作为类型参数
- std::vector 没有重载函数的实例与参数列表匹配
- C++中的单例实现在调用 getInstance 函数时不会产生相同的类实例
- C++初始化类实例时隐式调用类成员的构造函数
- 受约束的成员函数和显式模板实例化
- 对显式实例化的模板函数的未定义引用
- 将类实例函数绑定到 v8::FunctionTemplate
- lambda作为实例函数指针
- 我的类的静态实例函数不像我预期的那样工作
- 如何在C++中传递指向类实例函数的指针?
- 为什么我可以静态地调用实例函数