问题描述
有C ++ 11的更新版本的std :: getline。它接受右值“输入”参数。但是为什么会有一个右值参数,即函数将消耗“输入”参数,而在调用后将输入参数留空?
解决方法
我想这是在代码中将流构造为对Update table SET a=value WHERE x IN
(Select * from (select x from table where condition) as t)
的调用的一部分,例如
getline
例如,此代码将从s的第一行放入s2。
像这样的代码在旧版本的std::string s = ...;
std::string s2;
getline(std::istringstream(s),s2);
中是不合法的,因为该代码的第一个参数是非常量引用。