【发布时间】:2020-03-18 22:46:18
【问题描述】:
我一直在使用std::string_view 库,并且一直在考虑更改我一直在研究的代码库以尽可能多地使用std::string_view。但是,在我阅读的许多主题中,关于何时何地使用std::string_view 而不是const std::string &。我看到很多答案说,“当你不需要一个空终止的字符串时。”所以当我开始在网上搜索时,“你什么时候需要一个空终止的字符串?”我还没有真正遇到关于这个主题的任何有用的答案。
我可以想到一个外部库的示例,您将链接到它需要 std::string。在这种情况下,您将需要一个以空字符结尾的字符串,因为该库需要它。我想另一个例子是如果你需要修改字符串本身,但是如果我们需要修改它,我们不会通过const & 传递它。
那么什么时候需要使用以空字符结尾的字符串呢?
我看过的链接:
【问题讨论】:
-
主要是与 C API 接口。
-
@uneven_mark 你能举个例子吗?
-
您链接的第四个问题的接受答案似乎回答了这个问题。
-
@Sailanarmo 大多数功能来自例如POSIX 或任何其他采用
const char*参数的 C 库。 eerorika 的回答就是一个例子。 -
@FrançoisAndrieux 所以真正的答案是,“只要 API 不调用空终止字符串?”
标签: c++ string c++17 string-view