小编tve*_*y42的帖子

使用typeid检查模板类型

我想知道以下是否安全:

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种类型中的一种,那么它将失败.但这不是问题,因为我知道参数只能是这些类型.

谢谢你的帮助

c++ templates typeid

1
推荐指数
1
解决办法
9242
查看次数

标签 统计

c++ ×1

templates ×1

typeid ×1