#include #include #include using namespace std; namespace mio_manip { struct sformat { enum floatfmt {n,f,e,g}; static floatfmt ffmt; static int width; static int precision; static bool left; double dat; bool write; void setformat(const string&); sformat(const double& d, const string& s) : dat(d), write(true) { setformat(s); } explicit sformat(const string& s) : write(false) { setformat(s); } explicit sformat(const double& d) : dat(d), write(true) { } }; inline sformat format(const double& d, const string& s) { return sformat(d,s); } inline sformat format(const string& s) { return sformat(s); } inline sformat format(const double& d) { return sformat(d); } ostream& operator<<(ostream&, const sformat&); struct fmt_error { }; }