]> git.tdb.fi Git - libs/core.git/blobdiff - source/strings/lexicalcast.cpp
Use C++11 features with containers
[libs/core.git] / source / strings / lexicalcast.cpp
index f4b58302fe154447753f399bf81e80d86ce091cd..2fc4be35c182f2d3dde801212580b2329df7a4b1 100644 (file)
@@ -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<T>::UnsignedType w = Absolute<T>::eval(v);
+               typename std::make_unsigned<T>::type w = Absolute<T>::eval(v);
                while(w)
                {
                        *--ptr = digits[w%base];
@@ -108,12 +108,12 @@ string int_to_str(T v, const Fmt &f)
 }
 
 template<typename T>
-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;
@@ -564,7 +564,7 @@ void operator>>(const LexicalConverter &c, char &v)
                v = str_to_int<char>(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)