std::spanstream 通常在 C++ 中如何使用?
How will std::spanstream usually be used in C++?
<spanstream>
将在 C++23 中首次亮相(参见 cppreference). According to the proposal,它们是带有 std::span
基于缓冲区的字符串流。
我的问题是:
std::spanstream
是否与旧的 std::strstream
(或在 C++ 98 中弃用的 strstream
有某种等同的用法?
- C++ 23 完全发布后使用它们有什么好处?
它们旨在成为 strstream
的 near drop-in replacement(除了适当的边界检查)。因此,它们将具有完全相同的用例。当您有一个要流式传输的现有缓冲区时 into/outof.
在 C++20 中添加的将 std::string
移动到 stringstream
的能力消除了现有缓冲区位于 std::string
中的用例。但有时你只有一个已知长度的裸 char const*
。
<spanstream>
将在 C++23 中首次亮相(参见 cppreference). According to the proposal,它们是带有 std::span
基于缓冲区的字符串流。
我的问题是:
std::spanstream
是否与旧的std::strstream
(或在 C++ 98 中弃用的strstream
有某种等同的用法?- C++ 23 完全发布后使用它们有什么好处?
它们旨在成为 strstream
的 near drop-in replacement(除了适当的边界检查)。因此,它们将具有完全相同的用例。当您有一个要流式传输的现有缓冲区时 into/outof.
在 C++20 中添加的将 std::string
移动到 stringstream
的能力消除了现有缓冲区位于 std::string
中的用例。但有时你只有一个已知长度的裸 char const*
。