有一个使用 C++11 的较新版本的 std::getline。它接受右值“输入”参数。但是为什么会有一个右值参数,即函数会消耗“输入”参数,在调用后将输入参数留空?
最佳答案
我想它是用于将流构造为调用 getline
的一部分的代码,例如
std::string s = ...;
std::string s2;
getline(std::istringstream(s), s2);
例如,此代码将从 s 中取出第一行并将其放入 s2 中。
这样的代码对于旧版本的 getline
来说是不合法的,因为它的第一个参数是非常量引用。
关于c++ - std::getline( basic_istream<...> &&input, basic_string<...> &str ) 右值 -"input",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64605022/