operator<<(std::basic_ostream)
template< class CharT, class Traits> basic_ostream<CharT,Traits>& operator<<( basic_ostream<CharT,Traits>& os, |
(1) | |
template< class CharT, class Traits > basic_ostream<CharT,Traits>& operator<<( basic_ostream<CharT,Traits>& os, |
(2) | |
template< class CharT, class Traits, class T > basic_ostream< charT, traits >& operator<<( basic_ostream<CharT,Traits>&& os, |
(3) | (since C++11) |
Inserts a character or a character string.
1-2) are formatted output functions: they begin execution by constructing an object of type sentry, which flushes the tie()'d output buffers if necessary and checks the stream errors. After construction, if the sentry object returns false, these functions return without attempting any output. If an error occurs during output, these functions call setstate(ios_base::failbit). If an exception is thrown during output, then ios::badbit is set (the exception is suppressed unless exceptions()&badbit) != 0, in which case it is rethrown)
1) Inserts a character ch. If the type of the character is not CharT, it is first converted with os.widen(ch). Padding is determined as if by Stage 3 of num_put::put(). After insertion, width(0) is called.
2) Inserts successive characters from the character array whose first element is pointed to by s.
- for the first and third overloads (where CharT matches the type of ch), exactly traits::length(s) characters are inserted.
- for the second overload, exactly std::char_traits<char>::length(s) characters are inserted.
- for the last two overloads, exactly traits::length(reinterpret_cast<const char*>(s)) are inserted.
Padding is determined as if by Stage 3 of num_put::put(). All characters are widened using os.widen() before insertion. After insertion, width(0) is called.
3) Calls the appropriate insertion operator, given an rvalue reference to an output stream object (equivalent to os << value).
Contents |
[edit] Parameters
os | - | output stream to insert data to |
ch | - | reference to a character to insert |
s | - | pointer to a character string to insert |
[edit] Return value
st
[edit] Example
#include <iostream> #include <sstream> int main() { std::cout << "Hello, world" // the const char* overlaod << '\n'; // the char overload std::string s = (std::ostringstream() << 1.2).str(); // rvalue overload std::cout << s << '\n'; }
Output:
Hello, world 1.2
[edit] See also
inserts formatted data (public member function) |