我正在开发一个
逻辑问题是,streambuf实现旨在用于读写(
basic_streambuf
来处理从/到Winsock套接字的读写。就像basic_filebuf
一样,我在内部使用std::codecvt
对象将从底层套接字读取的字节转换为“套接字streambuf”的char类型,并将写入套接字streambuf的字符转换为可以写入底层套接字的字节。为了做到这一点,我发现需要维护读写功能的缓冲区。逻辑问题是,streambuf实现旨在用于读写(
std::iostream
构造函数采用单个指向streambuf的指针),但只有一个可重载成员函数可用于自定义设置底层char缓冲区:setbuf
。如果我想允许我的套接字streambuf模板的用户设置底层缓冲区,setbuf
应该设置读缓冲区还是写缓冲区?哪种选项更合理?