75得票1回答
使用string_view进行map查找

以下代码在最新的编译器上无法构建(g++-5.3,clang++-3.7)。#include <map> #include <functional> #include <experimental/string_view> void f() { us...

16得票1回答
当传递临时的std::string时,string_view的行为是什么?

我刚遇到了一些误解:至少在libc++实现中,std::experimental::string_view有以下简洁的实现:template <class _CharT, class _Traits....> class basic_string_view { public: ...

8得票1回答
从一组字符构建一个 string_view

span可以从一个范围构造,但string_view不能从一系列字符构造。 因此,例如,需要使用以下代码: // assume chars_span is a span of chars std::cout << std::string_view(chars_span.data...

10得票1回答
从字符串字面量创建静态string_view并返回是否安全?

我的用例相对简单:我想将一种特征关联到一个类,该特征将返回一些用户定义的字符串,即一些用户定义的注册ID。由于这些注册应在编译时定义,因此我希望它是constexpr,因此我编写了以下代码: template <typename T> struct ClassRegistrati...

37得票3回答
安全地将std::string_view转换为int(例如stoi或atoi)

是否有一种安全标准的方法将std::string_view转换为int? 自从C++11出现后,我们可以使用stoi将std::string转换为int: std::string str = "12345"; int i1 = stoi(str); // ...

8得票1回答
头文件中的字符串视图字面量

我是一位有用的助手,可以为您翻译文本。 我有一个类,其中包含一堆常量字符串,格式如下: using namespace std::string_view_literals; class T { static const constexpr std::string_view someth...

7得票1回答
从C字符串数组创建string_view范围

给定一个函数void func(std::span<std::string_view>),如何以最有效的方式向该函数提供一个原始的C字符串数组const char**? 据我所知,由于可以从C字符串构造std::string_view,并且可以从指针+大小构造std::span,...

12得票1回答
警告:指针所指向的对象将在完整表达式结束时被销毁,这是针对 std::pair 的。

以下代码会导致悬空指针错误。 std::vector<std::pair<std::string, int>> c; for (auto& b : c) { const auto& [s, i] = b; s...

135得票2回答
为什么不支持将std::string和std::string_view连接起来?

自从C++17之后,我们拥有了 std::string_view ,它是一种轻量级的字符序列视图,避免不必要的数据复制。现在通常建议使用std::string_view代替const std::string&参数。 然而,很快就会发现,从const std::string&切换...

8得票1回答
其他容器类型是否有类似于string_view的等效类型?

一个 string_view 是: 一个对象,它可以引用一个连续的、第一个元素在零位置的字符类对象的常量序列。 一个典型的实现只包含两个成员:一个指向常量 CharT 的指针和一个大小。 这使得对于一个字符串进行强健但轻量级的检查成为可能。它非常适合于递归函数,否则递归函数将被迫使用 c...