summaryrefslogtreecommitdiffstats
path: root/cxxformat.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'cxxformat.hpp')
-rw-r--r--cxxformat.hpp18
1 files changed, 6 insertions, 12 deletions
diff --git a/cxxformat.hpp b/cxxformat.hpp
index 46d18b4..4598327 100644
--- a/cxxformat.hpp
+++ b/cxxformat.hpp
@@ -92,12 +92,6 @@ struct AutoConversion<char> : SimpleAutoConversion<'c', const char> {};
namespace detail
{
- template<typename T>
- struct remove_cvref { using type = std::remove_cv_t<std::remove_reference_t<T>>; };
-
- template<typename T>
- using remove_cvref_t = typename remove_cvref<T>::type;
-
template<typename T, bool Ok = false>
struct StointHelper
{
@@ -165,11 +159,11 @@ namespace detail
};
template<typename To, typename From, bool allowFallback>
- struct FormatConvertHelper<To, From, allowFallback, std::enable_if_t<!std::is_same_v<To, From> && std::is_same_v<remove_cvref_t<decltype(FormatConvert<To, remove_cvref_t<From>>::convert(std::declval<From>()))>, remove_cvref_t<To>>>>
+ struct FormatConvertHelper<To, From, allowFallback, std::enable_if_t<!std::is_same_v<To, From> && std::is_same_v<std::remove_cvref_t<decltype(FormatConvert<To, std::remove_cvref_t<From>>::convert(std::declval<From>()))>, std::remove_cvref_t<To>>>>
{
static constexpr To convert(const From &from)
{
- return FormatConvert<To, remove_cvref_t<From>>::convert(from);
+ return FormatConvert<To, std::remove_cvref_t<From>>::convert(from);
}
};
@@ -208,7 +202,7 @@ namespace detail
{
if constexpr (!allowFallback)
{
- if constexpr(!std::is_same_v<char, decltype(AutoConversion<remove_cvref_t<From>>::conversion())>)
+ if constexpr(!std::is_same_v<char, decltype(AutoConversion<std::remove_cvref_t<From>>::conversion())>)
{
if constexpr (std::is_pointer_v<From>)
{
@@ -224,7 +218,7 @@ namespace detail
}
}
}
- return AutoConversion<remove_cvref_t<From>>::conversion();
+ return AutoConversion<std::remove_cvref_t<From>>::conversion();
}
catch (const FormatException &)
{
@@ -363,7 +357,7 @@ namespace detail
case 's':
{
- const auto& string = convert<string_or_string_view<remove_cvref_t<Arg>>>(std::forward<Arg>(arg), "string", argumentIndex);
+ const auto& string = convert<string_or_string_view<std::remove_cvref_t<Arg>>>(std::forward<Arg>(arg), "string", argumentIndex);
precision = precision ? std::min(*precision, string.size()) : string.size();
return continueFormatting(false, string.data());
}
@@ -643,7 +637,7 @@ namespace detail
else if constexpr (conversion == 'p') return substr<0, i>(fmt).s + strprintf(makeDirective<fmt, conversion, i, iAfterPrecision, 0>().s, convert<const void *, false>(std::forward<Arg>(arg), "pointer", argumentIndex)) + format_s<substr<iAfterPrecision + 1>(fmt), 0, argumentIndex + 1>(std::forward<Args>(args)...);
else if constexpr (conversion == 's')
{
- const auto& string = convert<string_or_string_view<remove_cvref_t<Arg>>, false>(std::forward<Arg>(arg), "string", argumentIndex);
+ const auto& string = convert<string_or_string_view<std::remove_cvref_t<Arg>>, false>(std::forward<Arg>(arg), "string", argumentIndex);
return substr<0, i>(fmt).s + strprintf("%.*s", determineStringPrecision<havePrecision, fmt, iAfterFieldWidth, iAfterPrecision>(string), string.data()) + format_s<substr<iAfterPrecision + 1>(fmt), 0, argumentIndex + 1>(std::forward<Args>(args)...);
}
else