gpt4 book ai didi

c++ - basic_stringbuf 没有名为 'freeze' 的成员

转载 作者:行者123 更新时间:2023-11-30 02:39:18 26 4
gpt4 key购买 nike

以下代码编译失败:

#include <cstdio> 
#include <sstream>
int main()
{
std::ostrstream strm;
strm.rdbuf()->freeze(0);
}

我在编译时遇到以下错误:

g++ sample3.cpp
sample3.cpp: In function 'int main()':
sample3.cpp:5: error: 'ostrstream' is not a member of 'std'
sample3.cpp:5: error: expected `;' before 'strm'
sample3.cpp:6: error: 'strm' was not declared in this scope

在谷歌搜索后,我怀疑我应该使用 ostringstream 代替 ostrstream,所以我修改了程序如下:

#include <cstdio> 
#include <sstream>
int main()
{
std::ostringstream strm;
strm.rdbuf()->freeze(0);
}

但现在我得到以下错误:

g++ sample3.cpp
sample3.cpp: In function 'int main()':
sample3.cpp:6: error: 'struct std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >' has no member named 'freeze'

最佳答案

只需废弃 freeze() 调用——当前一代 std::ostringstream 不会像旧的 ostrstream 那样向您公开其内存管理功能 做到了。您需要重新编写原始代码,让字符串流以它想要的方式管理内存(这样会更简单/更不容易出错!)。

关于c++ - basic_stringbuf 没有名为 'freeze' 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29917721/

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