gitextract_mzintsjp/ ├── .clang-format ├── .github/ │ └── workflows/ │ ├── ci.yml │ ├── clang.yml │ ├── codeql.yml │ ├── examples.yml │ ├── gcc.yml │ ├── make-release.yml │ ├── module-tests.yml │ └── msvc.yml ├── .gitignore ├── CMakeLists.txt ├── Doxyfile ├── LICENSE.md ├── README.md ├── all/ │ └── CMakeLists.txt ├── bench/ │ ├── .gitignore │ ├── CMakeLists.txt │ ├── bar_chart_maker.py │ ├── benchmarks-iterators.cpp │ ├── lz/ │ │ ├── CMakeLists.txt │ │ └── compile-times.cpp │ ├── requirements.txt │ └── std/ │ ├── CMakeLists.txt │ └── compile-times.cpp ├── cmake/ │ ├── cpp-lazy.pc.in │ └── cpp-lazyConfig.cmake.in ├── docs/ │ └── .gitkeep ├── examples/ │ ├── CMakeLists.txt │ ├── algorithm.cpp │ ├── any_iterable.cpp │ ├── as_iterator.cpp │ ├── basic_iterable.cpp │ ├── c_string.cpp │ ├── cached_reverse.cpp │ ├── cached_size.cpp │ ├── cartesian_product.cpp │ ├── chunk_if.cpp │ ├── chunks.cpp │ ├── common.cpp │ ├── concatenate.cpp │ ├── drop.cpp │ ├── drop_while.cpp │ ├── duplicates.cpp │ ├── enumerate.cpp │ ├── except.cpp │ ├── exclude.cpp │ ├── exclusive_scan.cpp │ ├── filter.cpp │ ├── flatten.cpp │ ├── generate.cpp │ ├── generate_while.cpp │ ├── group_by.cpp │ ├── inclusive_scan.cpp │ ├── interleave.cpp │ ├── intersection.cpp │ ├── iter_tools.cpp │ ├── join_where.cpp │ ├── loop.cpp │ ├── map.cpp │ ├── maybe_owned.cpp │ ├── pairwise.cpp │ ├── pipe.cpp │ ├── print_and_format.cpp │ ├── random.cpp │ ├── range.cpp │ ├── regex_split.cpp │ ├── repeat.cpp │ ├── rotate.cpp │ ├── slice.cpp │ ├── split.cpp │ ├── take.cpp │ ├── take_every.cpp │ ├── take_while.cpp │ ├── to_container.cpp │ ├── unique.cpp │ ├── zip.cpp │ └── zip_longest.cpp ├── include/ │ └── Lz/ │ ├── algorithm/ │ │ ├── accumulate.hpp │ │ ├── adjacent_find.hpp │ │ ├── algorithm.hpp │ │ ├── all_of.hpp │ │ ├── any_of.hpp │ │ ├── back.hpp │ │ ├── back_or.hpp │ │ ├── binary_search.hpp │ │ ├── contains.hpp │ │ ├── copy.hpp │ │ ├── count.hpp │ │ ├── count_if.hpp │ │ ├── empty.hpp │ │ ├── ends_with.hpp │ │ ├── equal.hpp │ │ ├── find.hpp │ │ ├── find_if.hpp │ │ ├── find_if_not.hpp │ │ ├── find_last.hpp │ │ ├── find_last_if.hpp │ │ ├── find_last_if_not.hpp │ │ ├── find_last_or_default.hpp │ │ ├── find_last_or_default_if.hpp │ │ ├── find_last_or_default_if_not.hpp │ │ ├── find_last_or_default_not.hpp │ │ ├── find_or_default.hpp │ │ ├── find_or_default_if.hpp │ │ ├── for_each.hpp │ │ ├── for_each_while.hpp │ │ ├── for_each_while_n.hpp │ │ ├── front.hpp │ │ ├── front_or.hpp │ │ ├── has_many.hpp │ │ ├── has_one.hpp │ │ ├── index_of.hpp │ │ ├── index_of_if.hpp │ │ ├── is_sorted.hpp │ │ ├── lower_bound.hpp │ │ ├── max_element.hpp │ │ ├── mean.hpp │ │ ├── min_element.hpp │ │ ├── none_of.hpp │ │ ├── npos.hpp │ │ ├── nth.hpp │ │ ├── partition.hpp │ │ ├── peek.hpp │ │ ├── search.hpp │ │ ├── starts_with.hpp │ │ ├── transform.hpp │ │ └── upper_bound.hpp │ ├── any_iterable.hpp │ ├── as_iterator.hpp │ ├── basic_iterable.hpp │ ├── c_string.hpp │ ├── cached_size.hpp │ ├── cartesian_product.hpp │ ├── chunk_if.hpp │ ├── chunks.hpp │ ├── common.hpp │ ├── concatenate.hpp │ ├── detail/ │ │ ├── adaptors/ │ │ │ ├── as_iterator.hpp │ │ │ ├── c_string.hpp │ │ │ ├── cached_size.hpp │ │ │ ├── cartesian_product.hpp │ │ │ ├── chunk_if.hpp │ │ │ ├── chunks.hpp │ │ │ ├── common.hpp │ │ │ ├── concatenate.hpp │ │ │ ├── drop.hpp │ │ │ ├── drop_while.hpp │ │ │ ├── duplicates.hpp │ │ │ ├── enumerate.hpp │ │ │ ├── except.hpp │ │ │ ├── exclude.hpp │ │ │ ├── exclusive_scan.hpp │ │ │ ├── filter.hpp │ │ │ ├── flatten.hpp │ │ │ ├── fn_args_holder.hpp │ │ │ ├── generate.hpp │ │ │ ├── generate_while.hpp │ │ │ ├── group_by.hpp │ │ │ ├── inclusive_scan.hpp │ │ │ ├── interleave.hpp │ │ │ ├── intersection.hpp │ │ │ ├── iter_tools.hpp │ │ │ ├── join_where.hpp │ │ │ ├── loop.hpp │ │ │ ├── map.hpp │ │ │ ├── pairwise.hpp │ │ │ ├── random.hpp │ │ │ ├── range.hpp │ │ │ ├── regex_split.hpp │ │ │ ├── repeat.hpp │ │ │ ├── reverse.hpp │ │ │ ├── rotate.hpp │ │ │ ├── slice.hpp │ │ │ ├── split.hpp │ │ │ ├── take.hpp │ │ │ ├── take_every.hpp │ │ │ ├── take_while.hpp │ │ │ ├── unique.hpp │ │ │ ├── zip.hpp │ │ │ └── zip_longest.hpp │ │ ├── algorithm/ │ │ │ ├── accumulate.hpp │ │ │ ├── adjacent_find.hpp │ │ │ ├── back.hpp │ │ │ ├── copy.hpp │ │ │ ├── count.hpp │ │ │ ├── count_if.hpp │ │ │ ├── ends_with.hpp │ │ │ ├── equal.hpp │ │ │ ├── find_if.hpp │ │ │ ├── find_last_if.hpp │ │ │ ├── for_each.hpp │ │ │ ├── for_each_while.hpp │ │ │ ├── for_each_while_n.hpp │ │ │ ├── index_of_if.hpp │ │ │ ├── is_sorted.hpp │ │ │ ├── lower_bound.hpp │ │ │ ├── max_element.hpp │ │ │ ├── mean.hpp │ │ │ ├── partition.hpp │ │ │ ├── peek.hpp │ │ │ ├── search.hpp │ │ │ ├── starts_with.hpp │ │ │ └── transform.hpp │ │ ├── compiler_config.hpp │ │ ├── fake_ptr_proxy.hpp │ │ ├── func_container.hpp │ │ ├── iterables/ │ │ │ ├── as_iterator.hpp │ │ │ ├── c_string.hpp │ │ │ ├── cached_size.hpp │ │ │ ├── cartesian_product.hpp │ │ │ ├── chunk_if.hpp │ │ │ ├── chunks.hpp │ │ │ ├── common.hpp │ │ │ ├── concatenate.hpp │ │ │ ├── drop.hpp │ │ │ ├── drop_while.hpp │ │ │ ├── duplicates.hpp │ │ │ ├── enumerate.hpp │ │ │ ├── except.hpp │ │ │ ├── exclude.hpp │ │ │ ├── exclusive_scan.hpp │ │ │ ├── filter.hpp │ │ │ ├── flatten.hpp │ │ │ ├── generate.hpp │ │ │ ├── generate_while.hpp │ │ │ ├── group_by.hpp │ │ │ ├── inclusive_scan.hpp │ │ │ ├── interleave.hpp │ │ │ ├── intersection.hpp │ │ │ ├── join_where.hpp │ │ │ ├── loop.hpp │ │ │ ├── map.hpp │ │ │ ├── pairwise.hpp │ │ │ ├── random.hpp │ │ │ ├── range.hpp │ │ │ ├── regex_split.hpp │ │ │ ├── repeat.hpp │ │ │ ├── reverse.hpp │ │ │ ├── rotate.hpp │ │ │ ├── split.hpp │ │ │ ├── take.hpp │ │ │ ├── take_every.hpp │ │ │ ├── take_while.hpp │ │ │ ├── unique.hpp │ │ │ ├── zip.hpp │ │ │ └── zip_longest.hpp │ │ ├── iterator.hpp │ │ ├── iterators/ │ │ │ ├── any_iterable/ │ │ │ │ ├── any_iterator_impl.hpp │ │ │ │ └── iterator_base.hpp │ │ │ ├── as_iterator.hpp │ │ │ ├── c_string.hpp │ │ │ ├── cached_reverse.hpp │ │ │ ├── cartesian_product.hpp │ │ │ ├── chunk_if.hpp │ │ │ ├── chunks.hpp │ │ │ ├── common.hpp │ │ │ ├── concatenate.hpp │ │ │ ├── duplicates.hpp │ │ │ ├── enumerate.hpp │ │ │ ├── except.hpp │ │ │ ├── exclude.hpp │ │ │ ├── exclusive_scan.hpp │ │ │ ├── filter.hpp │ │ │ ├── flatten.hpp │ │ │ ├── generate.hpp │ │ │ ├── generate_while.hpp │ │ │ ├── group_by.hpp │ │ │ ├── inclusive_scan.hpp │ │ │ ├── interleave.hpp │ │ │ ├── intersection.hpp │ │ │ ├── iterator_wrapper.hpp │ │ │ ├── join_where.hpp │ │ │ ├── loop.hpp │ │ │ ├── map.hpp │ │ │ ├── pairwise.hpp │ │ │ ├── random.hpp │ │ │ ├── range.hpp │ │ │ ├── regex_split.hpp │ │ │ ├── repeat.hpp │ │ │ ├── rotate.hpp │ │ │ ├── split.hpp │ │ │ ├── take.hpp │ │ │ ├── take_every.hpp │ │ │ ├── take_while.hpp │ │ │ ├── unique.hpp │ │ │ ├── zip.hpp │ │ │ └── zip_longest.hpp │ │ ├── maybe_owned.hpp │ │ ├── procs/ │ │ │ ├── addressof.hpp │ │ │ ├── assert.hpp │ │ │ ├── begin_end.hpp │ │ │ ├── decompose.hpp │ │ │ ├── distance.hpp │ │ │ ├── get_end.hpp │ │ │ ├── min_max.hpp │ │ │ ├── next_fast.hpp │ │ │ ├── operators.hpp │ │ │ ├── sentinel_operators.hpp │ │ │ └── tuple_expand.hpp │ │ ├── traits/ │ │ │ ├── conditional.hpp │ │ │ ├── conjunction.hpp │ │ │ ├── enable_if.hpp │ │ │ ├── first_arg.hpp │ │ │ ├── func_ret_type.hpp │ │ │ ├── index_sequence.hpp │ │ │ ├── is_adaptor.hpp │ │ │ ├── is_invocable.hpp │ │ │ ├── is_iterable.hpp │ │ │ ├── is_reference_wrapper.hpp │ │ │ ├── is_sentinel.hpp │ │ │ ├── is_sized.hpp │ │ │ ├── iterator_categories.hpp │ │ │ ├── remove_ref.hpp │ │ │ ├── std_algo_compat.hpp │ │ │ ├── strict_iterator_traits.hpp │ │ │ └── void.hpp │ │ ├── tuple_helpers.hpp │ │ ├── unique_ptr.hpp │ │ └── variant.hpp │ ├── drop.hpp │ ├── drop_while.hpp │ ├── duplicates.hpp │ ├── enumerate.hpp │ ├── except.hpp │ ├── exclude.hpp │ ├── exclusive_scan.hpp │ ├── filter.hpp │ ├── flatten.hpp │ ├── generate.hpp │ ├── generate_while.hpp │ ├── group_by.hpp │ ├── inclusive_scan.hpp │ ├── interleave.hpp │ ├── intersection.hpp │ ├── iter_tools.hpp │ ├── join_where.hpp │ ├── loop.hpp │ ├── map.hpp │ ├── pairwise.hpp │ ├── procs/ │ │ ├── chain.hpp │ │ ├── distance.hpp │ │ ├── eager_size.hpp │ │ ├── procs.hpp │ │ ├── size.hpp │ │ └── to.hpp │ ├── random.hpp │ ├── range.hpp │ ├── regex_split.hpp │ ├── repeat.hpp │ ├── reverse.hpp │ ├── rotate.hpp │ ├── slice.hpp │ ├── split.hpp │ ├── stream.hpp │ ├── take.hpp │ ├── take_every.hpp │ ├── take_while.hpp │ ├── traits/ │ │ ├── concepts.hpp │ │ ├── is_sized.hpp │ │ ├── iter_type.hpp │ │ ├── lazy_view.hpp │ │ └── traits.hpp │ ├── unique.hpp │ ├── util/ │ │ ├── default_sentinel.hpp │ │ ├── optional.hpp │ │ ├── string_view.hpp │ │ └── util.hpp │ ├── zip.hpp │ └── zip_longest.hpp ├── src/ │ └── lz.cppm └── tests/ ├── CMakeLists.txt ├── algorithm.cpp ├── any_iterable.cpp ├── as_iterator.cpp ├── c_string.cpp ├── cached_size.cpp ├── cartesian_product.cpp ├── chunk_if.cpp ├── chunks.cpp ├── common.cpp ├── concatenate.cpp ├── cpp-lazy-ut-helper/ │ ├── CMakeLists.txt │ └── include/ │ └── cpp-lazy-ut-helper/ │ ├── pch.hpp │ ├── test_procs.hpp │ └── ut_helper.hpp ├── duplicates.cpp ├── enumerate.cpp ├── except.cpp ├── exclude.cpp ├── exclusive_scan.cpp ├── filter.cpp ├── flatten.cpp ├── generate.cpp ├── generate_while.cpp ├── group_by.cpp ├── inclusive_scan.cpp ├── init.cpp ├── interleave.cpp ├── intersection.cpp ├── iter_tools.cpp ├── iterator.cpp ├── join_where.cpp ├── loop.cpp ├── map.cpp ├── maybe_owned.cpp ├── module_tests/ │ ├── CMakeLists.txt │ └── module_test.cpp ├── pairwise.cpp ├── piping.cpp ├── random.cpp ├── range.cpp ├── regex_split.cpp ├── repeat.cpp ├── reverse.cpp ├── rotate.cpp ├── split.cpp ├── standalone.cpp ├── string_view.cpp ├── take.cpp ├── take_every.cpp ├── take_while.cpp ├── unique.cpp ├── zip.cpp └── zip_longest.cpp