gpt4 book ai didi

c++ - 类型转换 void* 并将其放入 ostringstream

转载 作者:行者123 更新时间:2023-11-27 23:24:29 28 4
gpt4 key购买 nike

我有问题 void * 我想把包含的内容放在一个字符串中输出它,我知道在编译时编译器不知道指针指向什么所以我想使用一种类型的转换(将 *(void*) 转换为字符串)static_cast:

  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 测试了它的工作原理,但我不确定其余部分。

如有任何帮助,我们将不胜感激。

最佳答案

如果您知道 void* 恰好指向 std::string 那么是的,它是安全的。

关于c++ - 类型转换 void* 并将其放入 ostringstream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10346999/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com