文件到std :: string_view

问题描述 投票:0回答:2

是否可以将文件直接加载到std :: string_view?

直接=无需从stringstream创建代理std :: string。

这会使我的很多代码更快。

c++ stl string-view
2个回答
2
投票

如果我了解您的要求,不。

std::string_view指的是内存区域,但它不拥有该内存。这意味着std::string_view requires存在另一个对象,该对象实际上持有它的char对象指。

如果std::string_view引用std::string并且该字符串的生存期结束,那么std::string_view现在实际上是一个悬空的引用/指针,尝试从中读取字符将导致未定义的行为。

请注意,std::string_view可以引用char之外的std::string对象的连续序列,例如简单的char数组或std::vector<char>,但是无论引用的是什么,引用对象必须存在,至少要使用std::string_view


2
投票

如果可以访问boost,则可以将字符串视图指向data()boost::iostreams::mapped_file

© www.soinside.com 2019 - 2024. All rights reserved.