various Asibfm700MountConfig class fixes

This commit is contained in:
2025-10-31 12:22:16 +03:00
parent a1fa54c636
commit d69ea51b0c
5 changed files with 70 additions and 40 deletions

View File

@@ -482,21 +482,23 @@ public:
el_t elem;
size_t i = 0;
auto els = std::views::split(bytes, _rangeDelim);
if (trimSpaces(bytes).size()) {
auto els = std::views::split(bytes, _rangeDelim);
for (auto const& el : els) {
ret = (*this)(std::string_view(el), elem);
if (!ret) {
if constexpr (traits::mcc_array_c<VT>) {
if (i < std::ranges::size(r)) {
r[i] = elem;
for (auto const& el : els) {
ret = (*this)(std::string_view(el), elem);
if (!ret) {
if constexpr (traits::mcc_array_c<VT>) {
if (i < std::ranges::size(r)) {
r[i] = elem;
}
++i;
} else {
std::back_inserter(r) = elem;
}
++i;
} else {
std::back_inserter(r) = elem;
return std::make_error_code(std::errc::invalid_argument);
}
} else {
return std::make_error_code(std::errc::invalid_argument);
}
}
@@ -630,6 +632,9 @@ public:
if constexpr (std::convertible_to<T, VT>) {
val = value;
return std::error_code();
} else if constexpr (std::constructible_from<VT, T>) {
val = VT(value);
return std::error_code();
} else {
return std::make_error_code(std::errc::invalid_argument);
}