是否可以将文件直接加载到 std::string_view 中?
直接 = 不从 stringstream 创建代理 std::string。
它会使我的很多代码更快。
是否可以将文件直接加载到 std::string_view 中?
直接 = 不从 stringstream 创建代理 std::string。
它会使我的很多代码更快。
如果您有权访问boost
,则可以将字符串视图指向data()
a boost::iostreams::mapped_file
。
如果我明白你在问什么,不。
std::string_view
指的是内存区域,但它不拥有该内存。这意味着 anstd::string_view
要求存在另一个对象,该char
对象实际上包含它所引用的对象。
如果 anstd::string_view
引用 anstd::string
并且该字符串的生命周期结束,那么std::string_view
现在实际上是一个悬空引用/指针,并且尝试从中读取字符将导致未定义的行为。
请注意,除了 之外,它还std::string_view
可以引用连续的char
对象序列std::string
,例如简单char
数组或 an std::vector<char>
,但无论它引用什么,所指对象必须至少在std::string_view
使用时存在。