我void *
想将包含的内容放入字符串中以输出它有问题,我知道在编译时编译器不知道指针指向的内容,所以我认为使用一种强制转换(强制*(void*)
转换为字符串)静态演员:
std::string get_Info_Field (std::string nameTab,int IDF)
{ ostringstream os;
iter=Inst_Data.find(nameTab);
if(iter!= Inst_Data.end())
{ iterF=(iter->second).find(IDF);
if(iterF!=(iter->second).end())
{os<<*static_cast<std::string*>(iterF->second.value);}
else { os<<""; }
}
else { os<<"";}
return os.str();
};
这iterF->second.value
是一个void*
我想获得它的值,它可以指向任何类型(int,string,float,long,char ..),我的问题是:这安全吗?无论类型如何,都会返回正确的指针值?我用int
它测试过,但我不确定其余的。
请任何帮助将不胜感激。