[all-commits] [llvm/llvm-project] 295b95: [lib++][ranges][NFC] Refactor `iterator_operations...

Konstantin Varlamov via All-commits all-commits at lists.llvm.org
Tue Jul 12 17:54:20 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 295b951ebcfea8d1fedf8abf4ffd449a83a551fd
      https://github.com/llvm/llvm-project/commit/295b951ebcfea8d1fedf8abf4ffd449a83a551fd
  Author: Konstantin Varlamov <varconst at apple.com>
  Date:   2022-07-12 (Tue, 12 Jul 2022)

  Changed paths:
    M libcxx/include/__algorithm/equal_range.h
    M libcxx/include/__algorithm/iterator_operations.h
    M libcxx/include/__algorithm/lower_bound.h
    M libcxx/include/__algorithm/ranges_binary_search.h
    M libcxx/include/__algorithm/ranges_lower_bound.h
    M libcxx/include/__algorithm/ranges_set_intersection.h
    M libcxx/include/__algorithm/ranges_upper_bound.h
    M libcxx/include/__algorithm/set_intersection.h

  Log Message:
  -----------
  [lib++][ranges][NFC] Refactor `iterator_operations.h` to use tags.

Change the mechanism in `iterator_operations.h` to pass around a generic
policy tag indicating whether an internal function is being invoked from
a "classic" STL algorithm or a ranges algorithm. `IterOps` is now
a template class specialized on the policy tag.

The advantage is that this mechanism is more generic and allows defining
arbitrary conditions in a clean manner.

Also add a few more iterator functions to `IterOps`.

Differential Revision: https://reviews.llvm.org/D129390




More information about the All-commits mailing list