Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

ostream_string

Glen Fernandes

Distributed under the Boost Software License, Version 1.0.


Table of Contents

Overview
Examples
Reference
History

The header <boost/utility/ostream_string.hpp> provides the function template boost::ostream_string for formatted output that satisfies the requirements of [ostream.formatted.reqmts].

The inserter for class template basic_string_view could be implemented as follows:

template<class charT, class traits>
std::basic_ostream<charT, traits>&
operator<<(std::basic_ostream<charT, traits>& os,
    const basic_string_view<charT, traits>& str)
{
    return boost::ostream_string(os, str.data(), str.size());
}

namespace boost {

template<class charT, class traits>
std::basic_ostream<charT, traits>&
ostream_string(std::basic_ostream<charT, traits>& os,
    const charT* data, std::size_t size);

} /* boost */

Free functions

template<class charT, class traits> std::basic_ostream<charT, traits>& ostream_string(std::basic_ostream<charT, traits>& os, const charT* data, std::size_t size);

Effects

Behaves like a formatted inserter (as described in [ostream.formatted.reqmts]) of os. Creates a character sequence seq of size characters starting at data, each widened using os.widen() ([basic.ios.members]). Determines padding for seq as described in [ostream.formatted.reqmts]. Inserts seq into os. Calls width(0).

Returns

os.

boost 1.71

  • Glen Fernandes updated the implementation of the basic_string_ref and basic_string_view stream insertion operators to write directly to the basic_streambuf and refactored that functionality into this common utility.

Last revised: August 14, 2019 at 12:05:25 GMT