- Fmt &width(unsigned w) { wd=w; return *this; }
- Fmt &precision(unsigned p) { prec=p; return *this; }
- Fmt &showpos(bool s=true) { spos=s; return *this; }
- Fmt &fill(wchar_t f) { fillc=f; return *this; }
- Fmt &fixed() { fmode=FIXED; return *this; }
- Fmt &scientific() { fmode=SCI; return *this; }
- Fmt &showpoint(bool s=true) { spoint=s; return *this; }
- Fmt &showbase(bool s=true) { sbase=s; return *this; }
- Fmt &left() { align=LEFT; return *this; }
- Fmt &right() { align=RIGHT; return *this; }
- Fmt &dec() { base=DEC; return *this; }
- Fmt &hex() { base=HEX; return *this; }
- Fmt &oct() { base=OCT; return *this; }
- Fmt &bin() { base=BIN; return *this; }
- Fmt &uppercase(bool u=true) { ucase=u; return *this; }
- Fmt &numeric() { type=NUM; return *this; }
- Fmt &character() { type=CHAR; return *this; }
- Fmt &string() { type=STR; return *this; }
+private:
+ void parse(const char *);
+
+public:
+ Fmt &width(unsigned w) { wd = w; return *this; }
+ Fmt &precision(unsigned p) { prec = p; return *this; }
+ Fmt &showpos(bool s=true) { spos = s; return *this; }
+ Fmt &fill(wchar_t f) { fillc = f; return *this; }
+ Fmt &fixed() { fmode = FIXED; return *this; }
+ Fmt &scientific() { fmode = SCI; return *this; }
+ Fmt &showpoint(bool s=true) { spoint = s; return *this; }
+ Fmt &showbase(bool s=true) { sbase = s; return *this; }
+ Fmt &left() { align = LEFT; return *this; }
+ Fmt &right() { align = RIGHT; return *this; }
+ Fmt &dec() { base = DEC; return *this; }
+ Fmt &hex() { base = HEX; return *this; }
+ Fmt &oct() { base = OCT; return *this; }
+ Fmt &bin() { base = BIN; return *this; }
+ Fmt &uppercase(bool u=true) { ucase = u; return *this; }
+ Fmt &numeric() { type = NUM; return *this; }
+ Fmt &character() { type = CHAR; return *this; }
+ Fmt &string() { type = STR; return *this; }