Fix a few details in string conversion functions

This commit is contained in:
Martchus 2021-05-23 19:01:22 +02:00
parent 546b1fecb7
commit 96fb32e12f
1 changed files with 4 additions and 3 deletions

View File

@ -442,6 +442,7 @@ template <typename IntegralType, class StringType = std::string, typename BaseTy
Traits::EnableIf<std::is_integral<IntegralType>, std::is_signed<IntegralType>> * = nullptr> Traits::EnableIf<std::is_integral<IntegralType>, std::is_signed<IntegralType>> * = nullptr>
StringType numberToString(IntegralType number, BaseType base = 10) StringType numberToString(IntegralType number, BaseType base = 10)
{ {
const bool negative = number < 0; const bool negative = number < 0;
std::size_t resSize; std::size_t resSize;
if (negative) { if (negative) {
@ -537,7 +538,7 @@ IntegralType stringToNumber(const StringType &string, BaseType base = 10)
*/ */
template <typename IntegralType, class StringType, typename BaseType = IntegralType, template <typename IntegralType, class StringType, typename BaseType = IntegralType,
Traits::EnableIf<std::is_integral<IntegralType>, std::is_signed<IntegralType>, Traits::Not<std::is_scalar<std::decay_t<StringType>>>> * = nullptr> Traits::EnableIf<std::is_integral<IntegralType>, std::is_signed<IntegralType>, Traits::Not<std::is_scalar<std::decay_t<StringType>>>> * = nullptr>
IntegralType stringToNumber(const StringType &string, IntegralType base = 10) IntegralType stringToNumber(const StringType &string, BaseType base = 10)
{ {
auto i = string.begin(); auto i = string.begin();
auto end = string.end(); auto end = string.end();
@ -581,10 +582,10 @@ FloatingType stringToNumber(const StringType &string, int base = 10)
return result; return result;
} }
std::string errorMsg; std::string errorMsg;
errorMsg.reserve(42 + string.size()); errorMsg.reserve(48 + string.size());
errorMsg += "The string \""; errorMsg += "The string \"";
errorMsg += string; errorMsg += string;
errorMsg += "\" is no valid floating number."; errorMsg += "\" is no valid floating point number.";
throw ConversionException(errorMsg); throw ConversionException(errorMsg);
} }