aboutsummaryrefslogtreecommitdiff
path: root/include/cru/common
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-01-18 23:27:37 +0800
committercrupest <crupest@outlook.com>2022-01-18 23:27:37 +0800
commit46ced88c30eeb5f84b7fe78a36d18428babe4fcf (patch)
tree7933f921d3a60edf2d44e5b2d79907a913639d4f /include/cru/common
parenteecd4e5ba96244be15e3be9a9a4d404c36a533c7 (diff)
downloadcru-46ced88c30eeb5f84b7fe78a36d18428babe4fcf.tar.gz
cru-46ced88c30eeb5f84b7fe78a36d18428babe4fcf.tar.bz2
cru-46ced88c30eeb5f84b7fe78a36d18428babe4fcf.zip
...
Diffstat (limited to 'include/cru/common')
-rw-r--r--include/cru/common/Format.hpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/include/cru/common/Format.hpp b/include/cru/common/Format.hpp
index c093c9e6..c2fd2e09 100644
--- a/include/cru/common/Format.hpp
+++ b/include/cru/common/Format.hpp
@@ -33,14 +33,17 @@ std::enable_if_t<std::is_floating_point_v<T>, String> ToString(T value) {
return String(str.cbegin(), str.cend());
}
-inline String ToString(String value) { return value; }
-
template <typename T>
-String ToString(T&& value, StringView option) {
+std::enable_if_t<
+ std::is_convertible_v<decltype(ToString(std::declval<const T&>)), String>,
+ String>
+ToString(const T& value, StringView option) {
CRU_UNUSED(option)
- return ToString(std::forward<T>(value));
+ return ToString(value);
}
+inline String ToString(String value) { return value; }
+
namespace details {
enum class FormatTokenType { PlaceHolder, Text };
enum class FormatPlaceHolderType { None, Positioned, Named };