aboutsummaryrefslogtreecommitdiff
path: root/support/StringSupport.h
diff options
context:
space:
mode:
Diffstat (limited to 'support/StringSupport.h')
-rw-r--r--support/StringSupport.h28
1 files changed, 20 insertions, 8 deletions
diff --git a/support/StringSupport.h b/support/StringSupport.h
index 5e237c7dff..7d1b5e7778 100644
--- a/support/StringSupport.h
+++ b/support/StringSupport.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2020 Arm Limited.
+ * Copyright (c) 2017-2022 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -57,14 +57,14 @@ inline int stoi(const std::string &str, std::size_t *pos = 0, NumericBase base =
assert(base == NumericBase::BASE_10 || base == NumericBase::BASE_16);
unsigned int x;
std::stringstream ss;
- if(base == NumericBase::BASE_16)
+ if (base == NumericBase::BASE_16)
{
ss << std::hex;
}
ss << str;
ss >> x;
- if(pos)
+ if (pos)
{
std::string s;
std::stringstream ss_p;
@@ -93,14 +93,14 @@ inline unsigned long stoul(const std::string &str, std::size_t *pos = 0, Numeric
assert(base == NumericBase::BASE_10 || base == NumericBase::BASE_16);
std::stringstream stream;
unsigned long value = 0;
- if(base == NumericBase::BASE_16)
+ if (base == NumericBase::BASE_16)
{
stream << std::hex;
}
stream << str;
stream >> value;
- if(pos)
+ if (pos)
{
std::string s;
std::stringstream ss_p;
@@ -113,7 +113,7 @@ inline unsigned long stoul(const std::string &str, std::size_t *pos = 0, Numeric
return value;
}
-#if(__ANDROID__ || BARE_METAL)
+#if (__ANDROID__ || BARE_METAL)
/** Convert integer and float values to string.
*
* @note This function implements the same behaviour as std::to_string. The
@@ -124,13 +124,19 @@ inline unsigned long stoul(const std::string &str, std::size_t *pos = 0, Numeric
* @return String representation of @p value.
*/
template <typename T, typename std::enable_if<std::is_arithmetic<typename std::decay<T>::type>::value, int>::type = 0>
-inline std::string to_string(T && value)
+inline std::string to_string(T &&value)
{
std::stringstream stream;
stream << std::forward<T>(value);
return stream.str();
}
+// Specialization for const std::string&
+inline std::string to_string(const std::string &value)
+{
+ return value;
+}
+
/** Convert string values to float.
*
* @note This function implements the same behaviour as std::stof. The latter
@@ -164,6 +170,12 @@ inline std::string to_string(T &&value)
return ::std::to_string(std::forward<T>(value));
}
+// Specialization for const std::string&
+inline std::string to_string(const std::string &value)
+{
+ return value;
+}
+
/** Convert string values to float.
*
* @note This function acts as a convenience wrapper around std::stof. The
@@ -174,7 +186,7 @@ inline std::string to_string(T &&value)
* @return Float representation of input string.
*/
template <typename... Ts>
-int stof(Ts &&... args)
+int stof(Ts &&...args)
{
return ::std::stof(std::forward<Ts>(args)...);
}