X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fstrings%2Flexicalcast.cpp;h=2fc4be35c182f2d3dde801212580b2329df7a4b1;hb=44da9fc9afb6b7e49c1558c5572213a1e6f401e8;hp=ab83b110b432ba408f8bdfa3bd2fb53d3e848c8f;hpb=faeafc9d652ba6caa350ca95dff14408b036ccfb;p=libs%2Fcore.git diff --git a/source/strings/lexicalcast.cpp b/source/strings/lexicalcast.cpp index ab83b11..2fc4be3 100644 --- a/source/strings/lexicalcast.cpp +++ b/source/strings/lexicalcast.cpp @@ -59,7 +59,7 @@ char *int_to_str(T v, const Fmt &f, char *end) const char *digits = (f.get_uppercase() ? udigits : ldigits); if(v) { - typename MatchingInt::UnsignedType w = Absolute::eval(v); + typename std::make_unsigned::type w = Absolute::eval(v); while(w) { *--ptr = digits[w%base]; @@ -108,12 +108,12 @@ string int_to_str(T v, const Fmt &f) } template -T str_to_int(const std::string &s, const Fmt &f) +T str_to_int(const string &s, const Fmt &f) { if(s.empty()) throw lexical_error("conversion of '' to integer"); - std::string::const_iterator i = s.begin(); + auto i = s.begin(); // See if the input starts with a sign bool neg = false; @@ -389,7 +389,7 @@ T str_to_flt(const string &s, const Fmt &) if(s.empty()) throw lexical_error("conversion of '' to floating-point"); - std::string::const_iterator i = s.begin(); + auto i = s.begin(); // See if the input starts with a sign bool neg = false; @@ -471,6 +471,7 @@ namespace Msp { void LexicalConverter::result(const string &s) { + filled = true; if(s.size()>(const LexicalConverter &c, char &v) v = str_to_int(c.get(), c.get_fmt()); else { - const std::string &s = c.get(); + const string &s = c.get(); if(s.empty()) throw lexical_error("conversion of '' to character"); if(s.size()>1)