[all-commits] [llvm/llvm-project] 0be188: [libc++] Implement P0429R9 `std::flat_map` (#98643)

Hui via All-commits all-commits at lists.llvm.org
Sat Oct 26 10:59:15 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0be1883c36fc19e4020fea12902481c3dd3436d2
      https://github.com/llvm/llvm-project/commit/0be1883c36fc19e4020fea12902481c3dd3436d2
  Author: Hui <hui.xie1990 at gmail.com>
  Date:   2024-10-26 (Sat, 26 Oct 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/20.rst
    M libcxx/docs/Status/Cxx23Papers.csv
    M libcxx/include/CMakeLists.txt
    A libcxx/include/__flat_map/flat_map.h
    A libcxx/include/__flat_map/sorted_unique.h
    M libcxx/include/__utility/exception_guard.h
    A libcxx/include/flat_map
    M libcxx/include/module.modulemap
    M libcxx/modules/std.compat.cppm.in
    M libcxx/modules/std.cppm.in
    M libcxx/modules/std/flat_map.inc
    A libcxx/test/libcxx/containers/containers.adaptors/flat.map/assert.input_range.pass.cpp
    A libcxx/test/libcxx/containers/containers.adaptors/flat.map/assert.sorted_unique.pass.cpp
    A libcxx/test/libcxx/containers/containers.adaptors/flat.map/container_stability.pass.cpp
    M libcxx/test/libcxx/transitive_includes/cxx03.csv
    M libcxx/test/libcxx/transitive_includes/cxx11.csv
    M libcxx/test/libcxx/transitive_includes/cxx14.csv
    M libcxx/test/libcxx/transitive_includes/cxx17.csv
    M libcxx/test/libcxx/transitive_includes/cxx20.csv
    M libcxx/test/libcxx/transitive_includes/cxx23.csv
    M libcxx/test/libcxx/transitive_includes/cxx26.csv
    A libcxx/test/std/containers/container.adaptors/NaiveStaticVector.h
    A libcxx/test/std/containers/container.adaptors/flat.map.syn/sorted_unique.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.access/at.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.access/at_transparent.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.access/index_key.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.access/index_rv_key.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.access/index_transparent.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.capacity/empty.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.capacity/empty.verify.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.capacity/max_size.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.capacity/size.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/alloc.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/assign_initializer_list.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/compare.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/containers.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/copy.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/copy_alloc.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/copy_assign.addressof.compile.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/copy_assign.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/deduct.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/deduct.verify.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/deduct_pmr.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/default.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/default_noexcept.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/dtor_noexcept.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/initializer_list.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/iter_iter.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/iter_iter_stability.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_alloc.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_assign.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_assign_clears.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_assign_noexcept.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_exceptions.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_noexcept.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/pmr.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/range.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/sorted_container.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/sorted_initializer_list.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/sorted_iter_iter.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.erasure/erase_if.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.erasure/erase_if_exceptions.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.iterators/iterator.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.iterators/iterator_comparison.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.iterators/iterator_concept_conformance.compile.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.iterators/range_concept_conformance.compile.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.iterators/reverse_iterator.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/clear.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/emplace.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/emplace_hint.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/erase_iter.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/erase_iter_iter.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/erase_key.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/erase_key_transparent.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/extract.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_cv.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_initializer_list.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_iter_cv.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_iter_iter.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_iter_rv.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_or_assign.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_or_assign_transparent.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_range.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_range_stability.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_rv.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_sorted_initializer_list.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_sorted_iter_iter.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_transparent.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/replace.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/swap_exception.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/swap_free.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/swap_member.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/try_emplace.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/try_emplace_transparent.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.observers/comp.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.observers/keys_values.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.operations/contains.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.operations/contains_transparent.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.operations/count.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.operations/count_transparent.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.operations/equal_range.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.operations/equal_range_transparent.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.operations/find.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.operations/find_transparent.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.operations/lower_bound.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.operations/lower_bound_transparent.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.operations/upper_bound.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/flat.map.operations/upper_bound_transparent.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/helpers.h
    A libcxx/test/std/containers/container.adaptors/flat.map/incomplete_type.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/op_compare.pass.cpp
    A libcxx/test/std/containers/container.adaptors/flat.map/types.compile.pass.cpp
    A libcxx/test/support/MinSequenceContainer.h
    M libcxx/utils/libcxx/header_information.py

  Log Message:
  -----------
  [libc++] Implement P0429R9 `std::flat_map` (#98643)

Around half of the tests are based on the tests Arthur O'Dwyer's
original implementation of std::flat_map, with modifications and
removals.

partially implement #105190



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list