std::basic_ostream<CharT,Traits>::operator<<
|   basic_ostream& operator<<( short value ); basic_ostream& operator<<( unsigned short value );  | 
(1) | |
|   basic_ostream& operator<<( int value ); basic_ostream& operator<<( unsigned int value );  | 
(2) | |
|   basic_ostream& operator<<( long value ); basic_ostream& operator<<( unsigned long value );  | 
(3) | |
|   basic_ostream& operator<<( long long value ); basic_ostream& operator<<( unsigned long long value );  | 
(4) | (since C++11) | 
|   basic_ostream& operator<<( float value ); basic_ostream& operator<<( double value );  | 
(5) | |
|   basic_ostream& operator<<( bool value );  | 
(6) | |
|   basic_ostream& operator<<( const void* value );  | 
(7) | |
|   basic_ostream& operator<<( std::nullptr_t );  | 
(8) | (since C++17) | 
|   basic_ostream& operator<<( std::basic_streambuf<CharT, Traits>* sb);  | 
(9) | |
|   basic_ostream& operator<<( std::ios_base& (*func)(std::ios_base&) );  | 
(10) | |
|   basic_ostream& operator<<( std::basic_ios<CharT,Traits>& (*func)(std::basic_ios<CharT,Traits>&) );  | 
(11) | |
|   basic_ostream& operator<<( std::basic_ostream<CharT,Traits>& (*func)(std::basic_ostream<CharT,Traits>&) );  | 
(12) | |
Inserts data into the stream.
value is short or int, then casts it to unsigned short or unsigned int if ios_base::flags() & ios_base::basefield is ios_base::oct or ios_base::hex. After that, casts to long in any case and outputs as in (3). If value is unsigned short or unsigned int, casts to unsigned long and outputs as in (3).*this << s, where s is a null-terminated character type string.sb is a null pointer. If it is, executes setstate(badbit) and exits. Otherwise, extracts characters from the input sequence controlled by sb and inserts them into *this until one of the following conditions are met:
- end-of-file occurs on the input sequence;
 - inserting in the output sequence fails (in which case the character to be inserted is not extracted);
 - an exception occurs (in which case the exception is caught).
 
failbit is set in exceptions(), rethrows the exception.Parameters
| value | - | integer, floating-point, boolean, or pointer value to insert | 
| func | - | function to call | 
| sb | - | pointer to the streambuffer to read the data from | 
Return value
Notes
There are no overload for pointers to non-static member, pointers to volatile, or function pointers (other than the ones with signatures accepted by the (10-12) overloads). Attempting to output such objects invokes implicit conversion to bool, and, for any non-null pointer value, the value 1 is printed (unless boolalpha was set, in which case true is printed).
Character and character string arguments (e.g., of type char or const char*) are handled by the non-member overloads of operator<<. Attempting to output a character using the member function call syntax (e.g., std::cout.operator<<('c');) will call one of overloads (2-4) and output the numerical value. Attempting to output a character string using the member function call syntax will call overload (7) and print the pointer value instead.
Example
#include <iostream> #include <iomanip> #include <sstream> int main() { std::istringstream input(" \"Some text.\" "); volatile int n = 42; double f = 3.14; bool b = true; std::cout << n // int overload << ' ' // non-member overload << std::boolalpha << b // bool overload << " " // non-member overload << std::fixed << f // double overload << input.rdbuf() // streambuf overload << &n // bool overload: volatile int* doesn't convert to const void* << std::endl; // function overload }
Output:
42 true 3.140000 "Some text." true
See also
|    inserts character data  (function template)  | |
|    performs stream I/O of strings   (function template)  | |
|    performs stream input and output of bitsets  (function)  | |
|    serializes and deserializes a complex number   (function template)  | |
|    performs stream input and output on pseudo-random number engine   (function template)  | |
|    performs stream input and output on pseudo-random number distribution   (function template)  | |
|    inserts a character  (public member function)  | |
|    inserts blocks of characters  (public member function)  | |
|    (C++17)  | 
   converts an integer or floating-point value to a character sequence   (function)  |