std::spanstream通常如何在C++中使用?
<spanstream>将在 C++23 中首次亮相(请参阅cppreference)。根据提案,它们是std::span基于缓冲区的字符串流。
我的问题是:
- 是否
std::spanstream与旧的std::strstream(或strstream在 C++ 98 中已弃用)有些等效? - 在 C++ 23 完全发布后使用它们有什么好处?
回答
他们的本意是近下拉更换为strstream(与正确的边界检查除外)。因此,它们将具有完全相同的用例。当您有一个要流入/流出的现有缓冲区时。
在 C++20 中添加的将 a 移动std::string到stringstreams的能力消除了现有缓冲区在 a 中时的用例std::string。但有时你只有char const*一个已知长度的裸体。