文件到std :: string_view

时间:2019-11-04 16:14:57

标签: c++ stl string-view

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

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:2)

如果您有权访问boost,则可以将字符串视图指向boost::iostreams::mapped_filedata()