#include <x/serialize.H> int intvalue; std::vector<std::string> strarray; // ... std::ofstream ofs("object.dat"); std::ostreambuf_iterator<char> ofs_iter(ofs.rdbuf()); x::serialize::iterator<std::ostreambuf_iterator<char> > o_iter(ofs_iter); o_iter(intvalue); o_iter(strarray);
The x::serialize
namespace defines a
iterator
template class.
The iterator
output iterator implements
an operator()
that serializes its argument.
The parameter to the template class is an output iterator class.
std::ostreambuf_iterator<char>
is the
popular choice.
The constructor
takes a reference to the output iterator of this class.
iterator
saves a reference to the output iterator, which
must exist as long as the iterator
object
itself remains in scope.
The output iterator's value type must be either
char
or
unsigned char
.
iterator::operator
()
serializes the passed object into the output iterator.
It returns a reference to this
,
allowing for the following
shorthand:
o_iter(intvalue)(strarray);