tidy - llvm-use-ranges — Extra Clang Tools 22.0.0git documentation (original) (raw)
Finds calls to STL library iterator algorithms that could be replaced with LLVM range-based algorithms from llvm/ADT/STLExtras.h.
Example¶
auto it = std::find(vec.begin(), vec.end(), value); bool all = std::all_of(vec.begin(), vec.end(), [](int x) { return x > 0; });
Transforms to:
auto it = llvm::find(vec, value); bool all = llvm::all_of(vec, [](int x) { return x > 0; });
Supported algorithms¶
Calls to the following STL algorithms are checked:
std::all_of,std::any_of,std::binary_search,std::copy,std::copy_if,std::count,std::count_if,std::equal,std::fill,std::find,std::find_if,std::find_if_not,std::for_each,std::includes,std::is_sorted,std::lower_bound,std::max_element,std::min_element,std::mismatch,std::none_of,std::partition,std::partition_point,std::remove_if,std::replace,std::stable_sort,std::transform,std::uninitialized_copy,std::unique,std::upper_bound.
The check will add the necessary #include "llvm/ADT/STLExtras.h" directive when applying fixes.