#include #include #include #include #include #include using namespace std; template < typename T > string to_string (const T & in) { stringstream oss; boost::archive::text_oarchive oc (oss); oc << in; return oss.str (); } template < typename T > void from_string (T & out, const string & str) { stringstream oss(str); boost::archive::text_iarchive ia (oss); ia >> out; } template T construct(T, const string & in){ T var; from_string(var, in); return var; } template < class T > void to_file (const T & in, string filename) { ofstream ofs (filename.c_str ()); boost::archive::text_oarchive oa (ofs); oa << in; } template < class T > void from_file (T & out, string filename) { ifstream ifs (filename.c_str (), std::ios::binary); boost::archive::text_iarchive ia (ifs); ia >> out; }