4

<spanstream>将在 C++23 中首次亮相(参见cppreference)。根据提案,它们是带有std::span基于缓冲区的字符串流。

我的问题是:

  • 是否与旧的(或在 C++ 98 中已弃用)std::spanstream有一些等效的用途?std::strstreamstrstream
  • 在 C++ 23 完全发布后使用它们有什么好处?
4

1 回答 1

9

它们旨在成为近乎直接的替代品strstream除非有适当的边界检查)。因此,它们将具有完全相同的用例。当您有一个想要流入/流出的现有缓冲区时。

std::string在 C++20 中添加的将 a移入s的能力stringstream消除了现有缓冲区位于 a 中时的用例std::string。但有时你只是有char const*一个已知长度的裸体。

于 2021-06-10T15:42:43.377 回答