我想知道以下是否安全:
template<class T>
void Parameters::add(Parameter<T> p)
{
std::string sprobe("");
int iprobe = 0;
double dprobe = 0.;
if (typeid(T) == typeid(sprobe))
this->mstrings[p.name()] = p;
if (typeid(T) == typeid(iprobe))
this->mints[p.name()] = p;
if (typeid(T) == typeid(dprobe))
this->mdoubles[p.name()] = p;
}
Run Code Online (Sandbox Code Playgroud)
我有一个用于存储参数的类.它有3个boost :: unordered_map成员变量,用于存储int,double和std :: string类型的参数;
我创建了一个模板类参数.
我知道如果我的参数不是我预期的3种类型中的一种,那么它将失败.但这不是问题,因为我知道参数只能是这些类型.
谢谢你的帮助