diff options
-rw-r--r-- | include/cru/common/Format.hpp | 11 |
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 }; |