gpt4 book ai didi

c++ - 这是对临时 std::string 的正确使用吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:56:53 26 4
gpt4 key购买 nike

std::string getMyString() { return <make a string>; }

...

HANDLE something = OpenSomething(getMyString().c_str(), ...);

我读过 Guaranteed lifetime of temporary in C++并且我相信临时字符串将一直存在到分配被评估之前,即足够长的时间来使这项工作按预期进行。

之前遇到过一次与 std::string 生命周期相关的错误(不记得是什么)我宁愿仔细检查......

最佳答案

临时函数的析构函数直到函数调用返回后才会被调用,所以我们在这里看到的是安全的。

但是如果被调用的函数保存了char* 并且它最终以某种方式被使用 after OpenSomething 有返回,那么这是一个很好的悬挂指针。

关于c++ - 这是对临时 std::string 的正确使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5449368/

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