write
    The two overloads of the function template write provide a uniform interface for writing a sequence of characters to a Sink or OutputFilter. 
    
    The following code illustrates the use of the function write in the definition of an OutputFilter which reverses its controlled sequence.
#include <algorithm> // reverse #include <vector> #include <boost/iostreams/concepts.hpp> // output_filter #include <boost/iostreams/operations.hpp> // write using namespace std; using namespace boost::io; struct reversing_filter : public multichar_output_filter { template<typename Sink> std::streamsize write(Sink& snk, const char* s, streamsize n) { data.insert(data.end(), s, s + n); return n; } template<typename Sink> void close(Sink& snk) { std::reverse(data.begin(), data.end()); boost::iostreams::write(&data[0], (streamsize) data.size()); data.clear(); } std::vector<char> data; };
<boost/iostreams/operations.hpp><boost/iostreams/write.hpp>Attempts to write a sequence of characters to a given instance of the template parameter T, returning the number of characters written.
namespace boost { namespace iostreams { template<typename T> std::streamsize write( T& t, const typename char_type_of<T>::type* s, std::streamsize n ); template<typename T, typename Sink> std::streamsize write( T& t, Sink& snk, const typename char_type_of<T>::type* s, std::streamsize n ); } } // End namespace boost::io
| T | - | For the first overload, a model of Sink. For the second overload, a model of OutputFilter. | 
| Sink | - | A model of Sink with the same character type as Twhose mode refines that ofT. | 
| t | - | An instance of T | 
| s | - | A buffer containing characters to write | 
| n | - | The number of characters to write | 
| snk | - | An instance of Sink. | 
template<typename T> std::streamsize write( T& t, const typename char_type_of<T>::type* s, std::streamsize n );
The semantics of write depends on the category of T as follows:
| category_of<T>::type | semantics | 
|---|---|
| convertible to ostream_tag | returns t.rdbuf()->sputn(s, n) | 
| convertible to streambuf_tagbut not toostream_tag | returns t.sputn(s, n) | 
| otherwise | returns t.write(s, n) | 
template<typename T, typename Sink> std::streamsize write( T& t, Sink& snk, const typename char_type_of<T>::type* s, std::streamsize n );
The semantics of write depends on the category of T as follows:
| category_of<T>::type | semantics | 
|---|---|
| convertible to multichar_tag | returns t.write(snk, s, n) | 
| otherwise | Attempts to write ncharacters fromsby invokingt.put(snk, s[m])for each valuemin the interval[0, n), halting ifputreturnsfalse. Returns the number of characters written. | 
© Copyright 2008 CodeRage, LLC
© Copyright 2004-2007 Jonathan Turkanis
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)