Streams 中的内联忽略

Inline ignore in Streams

有没有办法在 C++ 内联中忽略字符?

例如 我正在阅读:

istringstream foo("2000-13-30");

foo >> year;
foo.ignore();
foo >> month;
foo.ignore();
foo >> day;

但我希望能够全部内联完成:

foo >> year >> ignore() >> month >> ignore() >> day;

我认为这在 C++ 中是可能的,但它绝对不适合我编译。也许我记得另一种语言?

foo.ignore() 是一个成员函数,所以它不能用作操纵器。它也没有正确的 return 类型和参数声明可以作为一个使用。不过,您可以轻松制作自己的作品:

std::istream& skip(std::istream& is) {
    return (is >> std::ws).ignore();
}

foo >> year >> skip >> month >> skip  >> day;