sstable_directory: parallel_for_each_restricted: use std::ranges for template definition

We'd like the container to be a std::ranges::range.

Signed-off-by: Benny Halevy <bhalevy@scylladb.com>
This commit is contained in:
Benny Halevy
2023-04-16 13:24:07 +03:00
parent e2023877f2
commit e4acc44814
2 changed files with 4 additions and 5 deletions

View File

@@ -429,8 +429,8 @@ sstable_directory::filter_sstables(std::function<future<bool>(sstables::shared_s
_unshared_local_sstables = std::move(filtered);
}
template <typename Container, typename Func>
requires std::is_invocable_r_v<future<>, Func, typename std::decay_t<Container>::value_type&>
template <std::ranges::range Container, typename Func>
requires std::is_invocable_r_v<future<>, Func, typename std::ranges::range_value_t<Container>&>
future<>
sstable_directory::parallel_for_each_restricted(Container& c, Func&& func) {
return do_with(std::move(func), [this, &c] (Func& func) mutable {

View File

@@ -159,10 +159,9 @@ private:
future<sstables::shared_sstable> load_sstable(sstables::entry_descriptor desc, sstables::sstable_open_config cfg = {}) const;
future<sstables::shared_sstable> load_sstable(sstables::entry_descriptor desc, process_flags flags) const;
template <typename Container, typename Func>
requires std::is_invocable_r_v<future<>, Func, typename std::decay_t<Container>::value_type&>
template <std::ranges::range Container, typename Func>
requires std::is_invocable_r_v<future<>, Func, typename std::ranges::range_value_t<Container>&>
future<> parallel_for_each_restricted(Container& C, Func&& func);
future<> load_foreign_sstables(sstable_entry_descriptor_vector info_vec);
// Sort the sstable according to owner