归档到 std::string_view

File to std::string_view

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

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

它会让我的很多代码更快。

如果我明白你在问什么,不。

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

如果 std::string_view 指的是 std::string 并且该字符串的生命周期结束,那么 std::string_view 现在实际上是一个悬空的 reference/pointer 并试图从中读取字符它会导致未定义的行为。

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

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