gpt4 book ai didi

c++ - rdbuf(...) 返回一个指针——谁拥有指向的缓冲区?

转载 作者:搜寻专家 更新时间:2023-10-31 00:56:39 26 4
gpt4 key购买 nike

有一个STL <ios>库函数

streambuf* std::basic_ios::rdbuf (streambuf* sb);

此函数可用于更改与流关联的流缓冲区。如果您使用它,它会返回一个指向先前使用的 streambuf 的指针。目前尚不清楚谁“拥有”指针或它的生命周期是多少。标准 (27.5.5.3/5) 只是说

Returns: the previous value of rdbuf().

信息量不大。关于这个指针的有效期有多长有任何保证吗?应调用代码 delete完成后的指针?

最佳答案

缓冲区归最初将缓冲区安装到流对象中的任何人所有。流对象自带一个内部缓冲区,默认构造的流对象默认使用它。

因此,除非您的代码使用 rdbuf() 方法显式安装非默认缓冲区,否则答案是只要流对象存在,缓冲区就有效。

如果你没有安装缓冲区,你显然不应该删除它。

关于c++ - rdbuf(...) 返回一个指针——谁拥有指向的缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39121258/

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