Use std::ranges::distance instead implementation with std::ranges::fold_left
This commit is contained in:
parent
bb605dc9a8
commit
2f8e5ff76e
2 changed files with 4 additions and 15 deletions
|
@ -30,12 +30,7 @@ constexpr auto ToKebabCaseName() -> std::string_view {
|
||||||
return ch != '\0';
|
return ch != '\0';
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
constexpr auto size = std::ranges::fold_left(str(),
|
constexpr auto size = std::ranges::distance(str()) - 1;
|
||||||
std::size_t{},
|
|
||||||
[](auto accum, auto) {
|
|
||||||
return accum + 1;
|
|
||||||
}) -
|
|
||||||
1;
|
|
||||||
static constexpr auto arr = [&] {
|
static constexpr auto arr = [&] {
|
||||||
std::array<char, size> response; // NOLINT
|
std::array<char, size> response; // NOLINT
|
||||||
std::ranges::copy(str() | std::views::drop(1), response.begin());
|
std::ranges::copy(str() | std::views::drop(1), response.begin());
|
||||||
|
|
|
@ -105,22 +105,16 @@ inline auto GetLines(const boost::asio::streambuf& buf) {
|
||||||
}
|
}
|
||||||
|
|
||||||
auto CountLines(const boost::asio::streambuf& buf) -> std::size_t {
|
auto CountLines(const boost::asio::streambuf& buf) -> std::size_t {
|
||||||
return std::ranges::fold_left(GetLines(buf), 0, [](auto accum, auto&&) {
|
return std::ranges::distance(GetLines(buf));
|
||||||
return accum + 1;
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
auto CountLines(std::string_view buf) -> std::size_t {
|
auto CountLines(std::string_view buf) -> std::size_t {
|
||||||
return std::ranges::fold_left(buf | std::views::split('\n'), 0, [](auto accum, auto&&) {
|
return std::ranges::distance(buf | std::views::split('\n'));
|
||||||
return accum + 1;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
auto GetIndex(const boost::asio::streambuf& buf, const xmlError* error, std::size_t alreadyCountedLines) -> std::size_t {
|
auto GetIndex(const boost::asio::streambuf& buf, const xmlError* error, std::size_t alreadyCountedLines) -> std::size_t {
|
||||||
return std::ranges::fold_left(
|
return std::ranges::fold_left(
|
||||||
GetLines(buf) | std::views::take(error->line - alreadyCountedLines) | std::views::transform([](auto&& line) -> std::size_t {
|
GetLines(buf) | std::views::take(error->line - alreadyCountedLines) | std::views::transform([](auto&& line) -> std::size_t {
|
||||||
return std::ranges::fold_left(line, std::size_t{1}, [](auto accum, auto&&) {
|
return std::ranges::distance(line) + 1;
|
||||||
return accum + 1;
|
|
||||||
});
|
|
||||||
}),
|
}),
|
||||||
error->int2 - 1, // columns
|
error->int2 - 1, // columns
|
||||||
std::plus<>{});
|
std::plus<>{});
|
||||||
|
|
Loading…
Reference in a new issue