-/* $Id$
-
-This file is part of libmspstrings
-Copyright © 2006-2008 Mikko Rasa
-Distributed under the LGPL
-*/
-
#ifndef MSP_STRINGS_FMT_H_
#define MSP_STRINGS_FMT_H_
#include <ostream>
+#include <stdexcept>
#include <string>
namespace Msp {
+class format_error: public std::logic_error
+{
+public:
+ format_error(const std::string &w): std::logic_error(w) { }
+ virtual ~format_error() throw() { }
+};
+
+
/**
Stores formatting information for converting variables into strings. Can be
applied to an std::ostream or fed to lexical_cast. Also used internally by
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 &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 &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 &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; }