【问题标题】:std::getline( basic_istream<...> &&input, basic_string<...> &str ) with rvalue-"input"std::getline( basic_istream<...> &&input, basic_string<...> &str ) 右值-“输入”
【发布时间】:2020-10-30 08:36:24
【问题描述】:

有一个更新版本的 std::getline 与 C++11。它接受一个右值“输入”参数。但是为什么有一个右值参数,即函数会消耗“输入”参数,调用后输入参数为空?

【问题讨论】:

  • this proposal 中,提到的需要是“允许字符串I/O 与右值流一起工作”(第21 节)。编写此提案假设由 N1377、N1690 和 N1770 记录的右值引用提案成为 C++ 语言的一部分。如果您查看N1690,您可以清楚地看到 右值流的使用.

标签: c++ istream


【解决方案1】:

我想它是用于将流构造为调用getline 的一部分的代码,例如

std::string s = ...;
std::string s2;
getline(std::istringstream(s), s2);

例如,此代码将从 s 中取出第一行并将其放入 s2 中。

这样的代码对于旧版本的getline 是不合法的,因为它的第一个参数是非常量引用。

【讨论】:

    猜你喜欢
    • 2015-04-28
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    • 2015-07-23
    • 2013-11-09
    • 2019-03-12
    相关资源
    最近更新 更多