Namespaces
Variants
Views
Actions

operator<<(std::basic_ostream)

From cppreference.com
< cpp‎ | io‎ | basic ostream
Revision as of 12:28, 4 April 2013 by Cubbi (Talk | contribs)

Template:ddcl list begin <tr class="t-dcl ">

<td >
template< class CharT, class Traits>

basic_ostream<CharT,Traits>& operator<<( basic_ostream<CharT,Traits>& os,
                                         CharT ch );
template< class CharT, class Traits>
basic_ostream<CharT,Traits>& operator<<( basic_ostream<CharT,Traits>& os,
                                         char ch );
template< class Traits >
basic_ostream<char,Traits>& operator<<( basic_ostream<char,Traits>& os,
                                        char ch );
template< class Traits >
basic_ostream<char,Traits>& operator<<( basic_ostream<char,Traits>& os,
                                        signed char ch );
template< class Traits >
basic_ostream<char,Traits>& operator<<( basic_ostream<char,Traits>& os,

                                        unsigned char ch );
</td>

<td > (1) </td> <td class="t-dcl-nopad"> </td> </tr> <tr class="t-dcl ">

<td >
template< class CharT, class Traits >

basic_ostream<CharT,Traits>& operator<<( basic_ostream<CharT,Traits>& os,
                                         const CharT* s );
template< class CharT, class Traits >
basic_ostream<CharT,Traits>& operator<<( basic_ostream<CharT,Traits>& os,
                                         const char* s );
template< class Traits >
basic_ostream<char,Traits>& operator<<( basic_ostream<char,Traits>& os,  
                                        const char* s );
template< class Traits >
basic_ostream<char,Traits>& operator<<( basic_ostream<char,Traits>& os,
                                        const signed char* s );
template< class Traits >
basic_ostream<char,Traits>& operator<<( basic_ostream<char,traits>& os,

                                        const unsigned char* s );
</td>

<td > (2) </td> <td class="t-dcl-nopad"> </td> </tr> <tr class="t-dcl ">

<td >
template< class CharT, class Traits, class T >

basic_ostream< charT, traits >& operator<<( basic_ostream<CharT,Traits>&& os,

                                            const T& value );
</td>

<td > (3) </td> <td > (since C++11) </td> </tr> Template:ddcl list end

Inserts a character or a character string.

1) Behaves as an FormattedOutputFunction. After constructing and checking the sentry object, inserts the 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 to cancel the effects of std::setw, if any.
2) Behaves as an FormattedOutputFunction. After constructing and checking the sentry object, 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 to cancel the effects of std::setw, if any.
3) Calls the appropriate insertion operator, given an rvalue reference to an output stream object (equivalent to os << value).

Contents

Parameters

os - output stream to insert data to
ch - reference to a character to insert
s - pointer to a character string to insert

Return value

st

Example

#include <iostream>
#include <sstream>
int main()
{
    std::cout << "Hello, world" // the const char* overload
              << '\n';          // the char overload
    std::string s = (std::ostringstream() << 1.2).str(); // rvalue overload
    std::cout << s << '\n';
}

Output:

Hello, world
1.2

See also

Template:cpp/io/basic ostream/dcl list operator ltlt