gpt4 book ai didi

c++ - 临时对象的生命周期 : iterator to temporary vector in nested function call

转载 作者:行者123 更新时间:2023-11-28 00:10:47 25 4
gpt4 key购买 nike

假设我有这样的类(class):

struct QString {
//return null terminated array
std::vector<char> toLocal8Bit() const;
};

struct string_view {
const char *data;
size_t len;
string_view(const char *str): data(str), len(std::strlen(str)) {}
};

我有这样签名的功能:

void f(const string_view& str);

是否是有效代码

QString str;
f(string_view(&*str.toLocal8Bit().begin()));

?

我的意思是临时 std::vector 何时会被销毁?

最佳答案

临时对象在完整语句结束时被销毁。所以这是安全的。

关于c++ - 临时对象的生命周期 : iterator to temporary vector in nested function call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33263110/

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