Skip input to next line, for reading serialized objects
IgnoreUntilNewLine is too long in my opinion.  I'd simplify it to ignore_line.

It probably makes sense to provide the manipulator object in the library instead of letting the user declare one:

struct ignore_line_t {
    constexpr explicit ignore_until_newline_t() = default;
    // ...
};
inline constexpr ignore_line_t ignore_line{};


so the user can use it directly in a &gt;&gt; chain:

stream &gt;&gt; tmp.x &gt;&gt; tmp.y &gt;&gt; TU::ignore_line


Incidentally, we can go further and provide a similar helper for getline to fit in the chain:

class getline {
    std::string&amp; dest;
public:
    explicit getline(std::string&amp; s)
        : dest{s}
    {
    }
    friend std::istream&amp; operator&gt;&gt;(std::istream&amp; is, getline man)
    {
        return std::getline(is, man.dest);
    }
};


so your example can be written simply as

stream &gt;&gt; tmp.x &gt;&gt; tmp.y &gt;&gt; TU::ignore_line &gt;&gt; TU::getline(tmp.line)