27 Input/output library [input.output]

27.7 Formatting and manipulators [iostream.format]

27.7.5 Output streams [output.streams]

27.7.5.4 Standard basic_­ostream manipulators [ostream.manip]

Each instantiation of any of the function templates specified in this subclause is a designated addressable function ([namespace.std]).
template<class charT, class traits> basic_ostream<charT, traits>& endl(basic_ostream<charT, traits>& os);
Effects: Calls os.put(os.widen('\n')), then os.flush().
Returns: os.
template<class charT, class traits> basic_ostream<charT, traits>& ends(basic_ostream<charT, traits>& os);
Effects: Inserts a null character into the output sequence: calls os.put(charT()).
Returns: os.
template<class charT, class traits> basic_ostream<charT, traits>& flush(basic_ostream<charT, traits>& os);
Effects: Calls os.flush().
Returns: os.
template<class charT, class traits> basic_ostream<charT, traits>& emit_on_flush(basic_ostream<charT, traits>& os);
Effects: If os.rdbuf() is a basic_­syncbuf<charT, traits, Allocator>*, called buf for the purpose of exposition, calls buf->set_­emit_­on_­sync(true).
Otherwise this manipulator has no effect.
[Note
:
To work around the issue that the Allocator template argument cannot be deduced, implementations can introduce an intermediate base class to basic_­syncbuf that manages its emit_­on_­sync flag.
end note
]
Returns: os.
template<class charT, class traits> basic_ostream<charT, traits>& noemit_on_flush(basic_ostream<charT, traits>& os);
Effects: If os.rdbuf() is a basic_­syncbuf<charT, traits, Allocator>*, called buf for the purpose of exposition, calls buf->set_­emit_­on_­sync(false).
Otherwise this manipulator has no effect.
Returns: os.
template<class charT, class traits> basic_ostream<charT, traits>& flush_emit(basic_ostream<charT, traits>& os);
Effects: Calls os.flush().
Then, if os.rdbuf() is a basic_­syncbuf<charT, traits, Allocator>*, called buf for the purpose of exposition, calls buf->emit().
Returns: os.