string-view相关内容

将字符串存储在constexpr结构中

是否可以将字符串存储在 constexpr 结构中: 到目前为止,我只能提出: 结构A{constexpr A(std :: string_view n):m_name(n){}constexpr auto name(){return m_name;}std :: string_view m_name;//这可能会变得悬而未决!} 这显然是一个好主意,如果此类仅仅使用 A a = ..
发布时间:2021-04-20 19:05:25 C/C++开发

避免在嵌入式上使用func(char *)API

注意: 我对问题进行了很大的改动以使其更加具体,但是我将旧问题保留在帖子的末尾,以防对任何人有用. 新问题 我正在开发一个嵌入式应用程序,该应用程序使用以下类型来表示字符串: 字符串文字(默认为空终止) std :: array(非null终止) std :: string_view 我希望有一个函数可以统一接受所有函数.唯一的问题是,如果输入 ..
发布时间:2021-04-20 19:03:25 C/C++开发

如何将std :: string_view转换为double?

我正在为应用程序的自定义选项文件编写C ++解析器.我有一个循环,该循环从文本文件中以 option = value 的形式读取行,其中 value 必须转换为 double .用伪代码执行以下操作: while(不是EOF)语句 ..
发布时间:2021-04-20 18:59:20 C/C++开发

boost :: string_ref和boost :: string_view之间的区别

Boost提供了 string_view 的两种不同实现,它们将成为C ++ 17的一部分: utility/string_ref.hpp 中的 boost :: string_ref core/string_view.hpp 中的 boost :: string_view 这些之间是否有显着差异?未来应该优先选择哪个? 注意:我在Boost 1.61中注意到,boost : ..
发布时间:2021-04-15 20:43:05 其他开发

有没有一种安全的方法来断言字符串视图是否为null终止?

我的代码中有一部分广泛使用字符串视图.在任何地方使用 std :: string 都是不可想象的,并且 char const * 将不起作用,因为存在关联容器,许多比较以及此类操作难以执行的操作带有简单的原始字符串. 但是,有一个地方最终将处理C API,并且它需要以null结尾的字符串: auto sv = std :: string_view {/* ... */};c_api(sv ..
发布时间:2021-04-12 18:30:41 C/C++开发

如何制作constexpr交换函数?

出于学习目的,我正在制作自己的String View类,并且尝试将其设置为100%constexpr。 要对其进行测试,我有一个返回哈希值的成员函数。然后,我在switch语句中构造我的字符串视图,并调用相同的成员函数(如果通过),则该成员函数已充分说明其目的。 要学习,使用/阅读/比较我的实现与Visual Studio 2017最新更新 std :: string_view ,但是 ..
发布时间:2020-10-08 18:34:07 C/C++开发

为什么用string_view而不是一般的container_view< T> ;?

我发现新的C ++ 17标准的string_view有点多余。 我们已经收集了非常详细的简单机制,用于将数据传递给被调用方,没有太多的开销,现在又有了另一种,也只针对一种容器类型。 我不明白为什么只提供这种设备用于字符串,而不是用于其他容器的更通用的类型。一个明智的答案是,我们已经有了这类解决方案。例如,在 C ++ 17及更高版本演示文稿string_view解释为 observer ..
发布时间:2020-09-28 01:56:16 C/C++开发

为什么没有从std :: string_view到std :: string的隐式转换?

从 std :: string 隐式转换为 std :: string_view ,这并不认为是不安全的,即使程序员不注意,即使这样肯定会导致很多悬挂引用。 另一方面,从 std没有隐式转换: :string_view 到 std :: string 使用相同的参数,但方式完全相反:因为程序员可能不小心 很高兴C ++替换了原始的 const char * 指针,同时使其变得超级混乱和 ..
发布时间:2020-09-28 01:52:59 其他开发

我什么时候可以通过const& std :: string而不是std :: string_view?

我了解使用 std :: string_view 的动机; 可以帮助避免在函数参数中进行不必要的分配。 例如: 以下程序将创建 std :: string 来自字符串文字。 这会导致不希望的动态分配,因为我们只对观察字符感兴趣。 #include void *运算符new(std :: size_t n) { std :: cout ..
发布时间:2020-09-27 01:00:29 C/C++开发