【发布时间】:2015-04-17 11:29:35
【问题描述】:
我有一组实用函数,它们从流中逐行读取,而不是逐字读取。它们与strings 一起工作,所以我想仅在这些函数的范围内本地更改string 提取运算符。这可能吗?
我现在正在做的是创建一个struct,它是一个string,并仅为该结构编写一个提取运算符。
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) 来完成这个吗?
【问题讨论】:
标签: c++ string operator-overloading getline extraction-operator