diff --git a/src/common/String.cpp b/src/common/String.cpp index a197d17a63..41bbe01361 100644 --- a/src/common/String.cpp +++ b/src/common/String.cpp @@ -5,7 +5,7 @@ #include "String.h" -std::string ByteString::ConversionError::formatError(ByteString::value_type const *at, ByteString::value_type const *upto) +ByteString ConversionError::formatError(ByteString::value_type const *at, ByteString::value_type const *upto) { std::stringstream ss; ss << "Could not convert sequence to UTF-8:"; @@ -77,7 +77,7 @@ ByteString String::ToUtf8() const } else if(result == std::codecvt_base::error) { - throw ByteString::ConversionError(true); + throw ConversionError(true); } else if(result == std::codecvt_base::partial) { diff --git a/src/common/String.h b/src/common/String.h index 76825f684a..706f270e0f 100644 --- a/src/common/String.h +++ b/src/common/String.h @@ -99,14 +99,6 @@ class ByteString : public std::basic_string public: - class ConversionError : public std::runtime_error - { - static std::string formatError(value_type const *at, value_type const *upto); - public: - inline ConversionError(value_type const *at, value_type const *upto): std::runtime_error(formatError(at, upto)) {} - inline ConversionError(bool to): std::runtime_error(to ? "Could not convert to UTF-8" : "Could not convert from UTF-8") {} - }; - String FromUtf8(bool ignoreError = true) const; inline String FromAscii() const; @@ -243,4 +235,13 @@ inline ByteString String::ToAscii() const destination[i] = ByteString::value_type(operator[](i)); return destination; } + +class ConversionError : public std::runtime_error +{ + static ByteString formatError(ByteString::value_type const *at, ByteString::value_type const *upto); +public: + inline ConversionError(ByteString::value_type const *at, ByteString::value_type const *upto): std::runtime_error(formatError(at, upto)) {} + inline ConversionError(bool to): std::runtime_error(to ? "Could not convert to UTF-8" : "Could not convert from UTF-8") {} +}; + #endif