string-view相关内容
根据[string.find#1.2]和[string.find#1.3]: 表单的每个成员函数 constexpr size_type F(const charT* s, size_type pos) const; 的效果相当于:return F(basic_string_view(s), pos); 表单的每个成员函数 const
..
我有一堂课: 类 Symbol_t {上市:Symbol_t( const char* rawName ) {memcpy(m_V, rawName, 6 * sizeof(char));};string_view strVw() const {返回字符串视图(m_V,6);};私人的:字符 m_V[6];};//类 Symbol_t 还有一个我无法修改的 lib-func: extern
..
我了解使用 std::string_view 的动机; 它可以帮助避免函数参数中不必要的分配. 例如: 以下程序将从字符串文字创建 std::string. 这会导致不希望的动态分配,因为我们只对观察字符感兴趣. #include void* operator new(std::size_t n){std::cout
..
我有一个匹配表,其中包含数组的一部分(在回调中)的开始和结束索引-我将该数组包装到字符串向量中-现在最近我确实需要修改字符串的原始部分./p> struct regexcontext {std :: vector>火柴;std :: string主题;};int buildmatchvector(size_t(* offset_
..
是否可以将字符串存储在 constexpr 结构中: 到目前为止,我只能提出: 结构A{constexpr A(std :: string_view n):m_name(n){}constexpr auto name(){return m_name;}std :: string_view m_name;//这可能会变得悬而未决!} 这显然是一个好主意,如果此类仅仅使用 A a =
..
注意: 我对问题进行了很大的改动以使其更加具体,但是我将旧问题保留在帖子的末尾,以防对任何人有用. 新问题 我正在开发一个嵌入式应用程序,该应用程序使用以下类型来表示字符串: 字符串文字(默认为空终止) std :: array(非null终止) std :: string_view 我希望有一个函数可以统一接受所有函数.唯一的问题是,如果输入
..
我正在为应用程序的自定义选项文件编写C ++解析器.我有一个循环,该循环从文本文件中以 option = value 的形式读取行,其中 value 必须转换为 double .用伪代码执行以下操作: while(不是EOF)语句
..
我需要在所有空格处拆分 std :: string .但是,生成的范围应将其元素转换为 std :: string_view s.我正在为范围的“元素类型"而苦苦挣扎.我猜想,该类型类似于 c_str .如何将“拆分"部分转换为 string_view s? #include#include#include"range/v3/all.hpp"int
..
我想创建一个 constexpr std :: array .例如,它应包含 constexpr std :: strings_view的,如下所示: “文本0",“文本1",“文本2",.....“文本" 我想出了以下初步解决方案: #include#include#i
..
Boost提供了 string_view 的两种不同实现,它们将成为C ++ 17的一部分: utility/string_ref.hpp 中的 boost :: string_ref core/string_view.hpp 中的 boost :: string_view 这些之间是否有显着差异?未来应该优先选择哪个? 注意:我在Boost 1.61中注意到,boost :
..
我的代码中有一部分广泛使用字符串视图.在任何地方使用 std :: string 都是不可想象的,并且 char const * 将不起作用,因为存在关联容器,许多比较以及此类操作难以执行的操作带有简单的原始字符串. 但是,有一个地方最终将处理C API,并且它需要以null结尾的字符串: auto sv = std :: string_view {/* ... */};c_api(sv
..
出于学习目的,我正在制作自己的String View类,并且尝试将其设置为100%constexpr。 要对其进行测试,我有一个返回哈希值的成员函数。然后,我在switch语句中构造我的字符串视图,并调用相同的成员函数(如果通过),则该成员函数已充分说明其目的。 要学习,使用/阅读/比较我的实现与Visual Studio 2017最新更新 std :: string_view ,但是
..
可以将char类型的值模板参数包解压缩到(编译时)字符串中。 一个人如何在该字符串中获取 string_view ? 我想做什么: int main() { constexpr auto s = stringify
..
假设我们在一个类中有一个简单的getter方法,该方法返回对 std :: string 的 const 引用。成员: const std :: string& getString()const noexcept {return someString; } 随着 std :: string_view 在C ++ 17中,我想知道编写它是否具有任何优势: cons
..
我发现新的C ++ 17标准的string_view有点多余。 我们已经收集了非常详细的简单机制,用于将数据传递给被调用方,没有太多的开销,现在又有了另一种,也只针对一种容器类型。 我不明白为什么只提供这种设备用于字符串,而不是用于其他容器的更通用的类型。一个明智的答案是,我们已经有了这类解决方案。例如,在 C ++ 17及更高版本演示文稿string_view解释为 observer
..
使用gcc-7.1和标志 -std = c ++ 17 进行编译,以下程序会引发错误: #include void foo(const char * cstr){} void bar(std :: string_view str){ foo(str); } 错误消息是 在函数'void bar(std :: string_v
..
是否存在将 std :: string_view 转换为 int 的安全标准方法? 由于C ++ 11 std :: string 我们使用 stoi 转换为 int : std :: string str =“ 12345”; int i1 = stoi(str); //有效,i1 = 12345 int i2 = stoi(str.substr(1,2)); //工作,让
..
从 std :: string 隐式转换为 std :: string_view ,这并不认为是不安全的,即使程序员不注意,即使这样肯定会导致很多悬挂引用。 另一方面,从 std没有隐式转换: :string_view 到 std :: string 使用相同的参数,但方式完全相反:因为程序员可能不小心 很高兴C ++替换了原始的 const char * 指针,同时使其变得超级混乱和
..
我只是遇到了一些误解: 至少在libc ++实现中std :: experimental :: string_view具有以下简洁实现: 模板 class basic_string_view { public: typedef _CharT value_type; ... 模板
..
我了解使用 std :: string_view 的动机; 可以帮助避免在函数参数中进行不必要的分配。 例如: 以下程序将创建 std :: string 来自字符串文字。 这会导致不希望的动态分配,因为我们只对观察字符感兴趣。 #include void *运算符new(std :: size_t n) { std :: cout
..