我有一组实用函数,它们从流中逐行读取,而不是逐字读取。它们与string
s 一起使用,因此我只想string
在这些函数的范围内本地更改提取运算符。那可能吗?
我现在正在做的是创建 a struct
that is astring
并仅为该结构编写提取运算符。
struct line{
string str;
};
istream& operator>>(istream& lhs, line& rhs){
return getline(lhs, rhs.str);
}
然后提取istream
这样的:
vector<line> foo{ istream_iterator<line>(istringstream("Lorem Ipsum\nLorem Ipsum")), istream_iterator<line>() };
这很好用,但我不喜欢struct line
包装器。我要问的是,我可以在本地重载istream& operator>>(istream& lhs, string& rhs)
来完成这个吗?