...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::pfr::io
// In header: <boost/pfr/io.hpp> template<typename T> auto io(T && value);
IO manipulator to read/write simple aggregate value
using its IO stream operators or using boost::pfr::io_fields if operators are not available.
Example:
struct my_struct { int i; short s; }; my_struct x; std::stringstream ss; ss << "{ 12, 13 }"; ss >> boost::pfr::io(x); assert(x.i == 12); assert(x.s == 13);
See Also : 'Custom printing of aggregates' for info on how to implement your own manipulator with custom format.