This commit is contained in:
2024-10-29 17:36:16 +03:00
parent 4e3e3ec60e
commit 6a4278c247
7 changed files with 101 additions and 35 deletions

View File

@@ -170,14 +170,19 @@ static ValueT AdcFromChars(R&& range)
static const std::regex AdcIntegerRegex("^ *[+-]?\\d+\\d* *$", std::regex::ECMAScript);
static const std::regex AdcRealRegex("^ *[-+]?\\d+\\d*\\.?\\d*([Ee][-+]?\\d+)? *$", std::regex::ECMAScript);
template <typename SerializedT, traits::formattable VT>
// template <typename SerializedT, traits::formattable VT>
template <typename SerializedT, typename VT>
static SerializedT AdcTrivialSerializer(VT&& value)
{
using v_t = std::decay_t<VT>;
if constexpr (std::is_convertible_v<v_t, SerializedT>) {
return static_cast<SerializedT>(std::forward<VT>(value));
} else if constexpr (traits::adc_output_char_range<SerializedT>) {
} else if constexpr (traits::adc_output_char_range<SerializedT> && traits::adc_input_char_range<v_t>) {
SerializedT s_val;
std::ranges::copy(std::forward<VT>(value), std::back_inserter(s_val));
return s_val;
} else if constexpr (traits::adc_output_char_range<SerializedT> && traits::formattable<v_t>) {
SerializedT s_val;
std::format_to(std::back_inserter(s_val), "{}", std::forward<VT>(value));
return s_val;