]> git.tdb.fi Git - libs/core.git/blobdiff - source/stringcodec/except.cpp
Use C++11 features with containers
[libs/core.git] / source / stringcodec / except.cpp
index 045f44af107613b5134cabde1245c17720b98da3..db09a02e0685afa5ab47ab18fdb9caa4948e0d24 100644 (file)
@@ -1,4 +1,5 @@
 #include <msp/strings/format.h>
+#include <msp/strings/utils.h>
 #include "except.h"
 
 using namespace std;
@@ -7,23 +8,19 @@ namespace Msp {
 namespace StringCodec {
 
 invalid_character::invalid_character(unichar ch, const string &detail):
-       codec_error(format("invalid character: U+%04X (%s)", ch, detail))
+       codec_error(format("U+%04X (%s)", ch, detail))
 { }
 
 
 invalid_sequence::invalid_sequence(const string::const_iterator &begin, const string::const_iterator &end, const string &detail):
-       codec_error(format("invalid sequence: %s (%s)", format_sequence(begin, end), detail))
+       codec_error(format("%s (%s)", format_sequence(begin, end), detail))
 { }
 
 string invalid_sequence::format_sequence(const string::const_iterator &begin, const string::const_iterator &end)
 {
        string result;
-       for(string::const_iterator i=begin; i!=end; ++i)
-       {
-               if(!result.empty())
-                       result += ' ';
-               result += lexical_cast(static_cast<unsigned char>(*i), Fmt().fill('0').width(2).hex().uppercase());
-       }
+       for(auto i=begin; i!=end; ++i)
+               append(result, " ", lexical_cast<string>(static_cast<unsigned char>(*i), Fmt().fill('0').width(2).hex().uppercase()));
        return result;
 }