Questions tagged «string-view»


1
什么是string_view?
string_view是添加到C ++ 17 的C ++库基础TS(N3921)中的一项建议功能 据我了解,它是代表某种类型的字符串“概念”的一种类型,它是可以将任何可视内容存储为字符串的任何类型的容器的视图。 这是正确的吗 ? 规范 const std::string&参数类型应变为string_view? 还有string_view要考虑的另一个重要点吗?

1
为什么不支持串联std :: string和std :: string_view?
从C ++ 17开始,我们可以std::string_view轻松查看连续的字符序列,从而避免了不必要的数据复制。const std::string&现在通常建议使用而不是有参数来代替std::string_view。 但是,人们很快发现,从切换const std::string&到std::string_view使用字符串连接的代码会中断,因为不支持连接std::string和std::string_view: std::string{"abc"} + std::string_view{"def"}; // ill-formed (fails to compile) std::string_view{"abc"} + std::string{"def"}; // ill-formed (fails to compile) 为什么要为串联不支持std::string和std::string_view标准?

1
任何用constexpr string_view替换全局const char []的陷阱吗?
我们的团队正在使用具有10多年历史的C ++代码库,并且最近切换到了C ++ 17编译器。因此,我们正在寻找使代码现代化的方法。在YouTube的一次会议演讲中,我听到了用替换const char*全局字符串的建议constexpr string_view。 由于我们的代码中有很多这样的const char*全局字符串常量,因此我想问一下是否需要了解一些陷阱或潜在问题?

2
在只读情况下,什么时候需要空终止的字符串?
我一直在研究该std::string_view库,并且一直在考虑更改我一直在努力使用的代码库std::string_view。但是,在我阅读过的许多主题中,有关何时何地使用std::string_view而不是的主题const std::string &。我已经看到许多答案说:“何时不需要以null结尾的字符串。” 因此,当我开始在网上搜索“何时需要以null结尾的字符串?” 在这个问题上,我还没有真正有用的答案。 我可以想到一个外部库的示例,您需要链接到该外部库std::string。在那种情况下,您将需要一个以null结尾的字符串,因为该库需要它。我想另一个例子是,如果您需要修改字符串本身,但是const &如果我们需要修改它,那么我们就不会通过。 那么什么时候需要使用以null结尾的字符串? 我看过的链接: std :: string_view比const std :: string&到底有多快? 什么时候可以传递const&std :: string而不是std :: string_view? 为什么只有字符串视图? 在C ++ 17中使用const std :: string&参数是否有意义?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.