Implement P3567R2 `flat_meow` Fixes by frederick-vs-ja · Pull Request #5882 · microsoft/STL · GitHub
Skip to content

Implement P3567R2 flat_meow Fixes#5882

Merged
StephanTLavavej merged 13 commits into
microsoft:feature/flat_mapfrom
frederick-vs-ja:p3567r2
Dec 1, 2025
Merged

Implement P3567R2 flat_meow Fixes#5882
StephanTLavavej merged 13 commits into
microsoft:feature/flat_mapfrom
frederick-vs-ja:p3567r2

Conversation

@frederick-vs-ja

@frederick-vs-ja frederick-vs-ja commented Nov 19, 2025

Copy link
Copy Markdown
Contributor

Towards #2910 and #2912.

Implements Part

  • 5 swap Should be Conditionally noexcept
  • 6 Missing insert_range(sorted_unique, rg), and
  • 10 Feature Test Macros

from WG21-P3567R2. Other parts are probably already implemented.

Drive-by changes:

  • Move SCARY test into another file; maybe we expand the test when adding [[msvc::no_unique_address]] to flat_meow in the feature.
  • Fix the condition for using append_range - we may only rely it when it belongs to some standard containers.

Blocked libcxx tests:

  • std/containers/container.adaptors/flat.map/flat.map.modifiers/swap_free.pass.cpp (testing old, overly strong exception specification)
  • std/containers/container.adaptors/flat.map/flat.map.modifiers/swap_member.pass.cpp (same as above)
  • std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/swap_free.pass.cpp (same as above)
  • std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/swap_member.pass.cpp (same as above)
  • std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/swap_free.pass.cpp (same as above)
  • std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/swap_member.pass.cpp (same as above)
  • std/containers/container.adaptors/flat.set/flat.set.modifiers/swap_free.pass.cpp (same as above)
  • std/containers/container.adaptors/flat.set/flat.set.modifiers/swap_member.pass.cpp (same as above)
  • std/language.support/support.limits/support.limits.general/flat_map.version.compile.pass.cpp (testing old FTM value)
  • std/language.support/support.limits/support.limits.general/flat_set.version.compile.pass.cpp (same as above)

Unblocked libcxx test:

  • std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/insert_range.pass.cpp (due to the drive-by fix)
  • std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_range.pass.cpp (same as above; but only for Clang, because MSVC hasn't implemented WG21-P2448R2)

Comment thread tests/libcxx/expected_results.txt Outdated
@StephanTLavavej StephanTLavavej self-assigned this Nov 19, 2025
@StephanTLavavej StephanTLavavej added cxx23 C++23 feature flat_meow C++23 container adaptors labels Nov 19, 2025
Comment thread tests/std/tests/P0429R9_flat_map_ms_specific/env.lst Outdated
Comment thread tests/libcxx/expected_results.txt Outdated
Comment thread tests/std/tests/P0429R9_flat_map_ms_specific/test.compile.pass.cpp Outdated
Comment thread stl/inc/flat_map Outdated
Comment thread stl/inc/flat_map Outdated
@StephanTLavavej StephanTLavavej removed their assignment Dec 1, 2025
@StephanTLavavej StephanTLavavej moved this from Initial Review to Merging in STL Code Reviews Dec 1, 2025
@StephanTLavavej StephanTLavavej merged commit f09869f into microsoft:feature/flat_map Dec 1, 2025
45 checks passed
@github-project-automation github-project-automation Bot moved this from Merging to Done in STL Code Reviews Dec 1, 2025
@StephanTLavavej

Copy link
Copy Markdown
Member

@frederick-vs-ja frederick-vs-ja deleted the p3567r2 branch December 1, 2025 23:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cxx23 C++23 feature flat_meow C++23 container adaptors

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants