-
Notifications
You must be signed in to change notification settings - Fork 1.6k
P0429R9 <flat_map> and P1222R4 <flat_set>
#6071
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 250 commits
Commits
Show all changes
269 commits
Select commit
Hold shift + click to select a range
b37931c
Cleanups for `<flat_set>` (#4064)
achabense b9fee9b
Merge branch 'main' into flat_set-17.8p3
StephanTLavavej 6e7745f
Merge pull request #4089 from StephanTLavavej/flat_set-17.8p3
StephanTLavavej 4c866ae
`<flat_set>`: the copy/move functions should be user-defined (#4079)
achabense 7526405
Merge branch 'main' into flat_set-feature-test-macro-test
StephanTLavavej b07c9db
Update and fix the feature-test macro test.
StephanTLavavej 213b157
Merge pull request #4112 from StephanTLavavej/flat_set-feature-test-m…
StephanTLavavej a75edc9
`<flat_set>`: Test transparent insertion and more (#4084)
achabense cf59a16
`<flat_set>`: `flat_(multi)set`'s `iterator` type should be constant …
achabense 5960f79
`<flat_set>`: Correct allocator-extended constructors for `flat_(mult…
frederick-vs-ja ff90852
`<flat_set>`: Restore insertion in `flat_(multi)set`'s iterator-pair/…
frederick-vs-ja 40ca8b4
Merge branch 'main' into merge-flat_set
StephanTLavavej 35dc14f
Merge pull request #4205 from StephanTLavavej/merge-flat_set
StephanTLavavej ef9db25
Merge branch 'main' into flat_set-codeql
StephanTLavavej a55c5ff
Merge pull request #4207 from StephanTLavavej/flat_set-codeql
StephanTLavavej 26faa20
Merge branch 'main' into flat_set-vs17.9p2
StephanTLavavej bd59fb7
clang-format, no manual changes.
StephanTLavavej 28718f7
Merge pull request #4262 from StephanTLavavej/flat_set-vs17.9p2
StephanTLavavej bca8f68
Merge branch 'main' into flat_set-llvm
StephanTLavavej 29dfcee
Merge pull request #4266 from StephanTLavavej/flat_set-llvm
StephanTLavavej c606acf
Merge branch 'main' into flat_set-followup
StephanTLavavej 45b3bf3
Merge pull request #4269 from StephanTLavavej/flat_set-followup
StephanTLavavej 5734bd0
Merge branch 'main' into merge-flat_set
StephanTLavavej 9890ec6
Merge pull request #4307 from StephanTLavavej/merge-flat_set
StephanTLavavej 8e0f015
[WIP] Implementation of <flat_map> (#3896)
duanqn 2355b8c
`<flat_map>`: Remove `zip_view` dependency and other cleanups (#4315)
frederick-vs-ja 4d0d341
Merge branch 'main' into merge-flat_map
StephanTLavavej 674dcb1
Merge branch 'main' into merge-flat_set
StephanTLavavej 6aae422
Merge pull request #4325 from StephanTLavavej/merge-flat_map
StephanTLavavej 20e9a3d
Merge pull request #4326 from StephanTLavavej/merge-flat_set
StephanTLavavej 00c2324
`<flat_map>`: Fix overloads and complete deduction guides and `erase_…
frederick-vs-ja 176ceee
`<flat_map>` Fix compile errors (#4344)
duckdoom5 fdd2b35
Merge branch 'main' into merge-flat_map
StephanTLavavej 9ec5e10
Merge branch 'main' into merge-flat_set
StephanTLavavej 473bb93
Merge pull request #4352 from StephanTLavavej/merge-flat_map
StephanTLavavej dfea711
Merge pull request #4353 from StephanTLavavej/merge-flat_set
StephanTLavavej d7dbbc3
Merge branch 'main' into merge-flat_map
StephanTLavavej 510c1eb
Update `_HAS_CXX23` guard in `<flat_map>`.
StephanTLavavej 99a19de
Add a feature-test macro test.
StephanTLavavej 9a55199
Merge branch 'main' into merge-flat_set
StephanTLavavej d5d65bc
`concepts_latest_matrix.lst` => `usual_latest_matrix.lst`
StephanTLavavej 132f64c
Update `_HAS_CXX23` guard in `<flat_set>`.
StephanTLavavej 8a2cec7
Add `flat_map` to P1502R1_standard_library_header_units.
StephanTLavavej 76d9b20
std.ixx: Guard `<flat_map>` with `_HAS_CXX23`.
StephanTLavavej 3fb0e89
Add flat_map to include_each_header_alone_matrix.lst.
StephanTLavavej 8a52d0c
Merge pull request #4368 from StephanTLavavej/merge-flat_map
StephanTLavavej de27957
Merge pull request #4369 from StephanTLavavej/merge-flat_set
StephanTLavavej 5687099
`<flat_map>`: Re-enable `/permissive` with miscellaneous fixes and te…
frederick-vs-ja c2b25f3
Merge branch 'main' into merge-flat_map
StephanTLavavej bb4ec4b
Merge branch 'main' into merge-flat_set
StephanTLavavej 2c53614
Merge pull request #4396 from StephanTLavavej/merge-flat_map
StephanTLavavej 96ee59b
Merge pull request #4397 from StephanTLavavej/merge-flat_set
StephanTLavavej a3bc9c7
`<flat_map>`: Various cleanups and bug fixes (#4468)
frederick-vs-ja 8e8edbf
Merge branch 'main' into merge-flat_map
StephanTLavavej 541bcae
Merge branch 'main' into merge-flat_set
StephanTLavavej cd02663
Merge pull request #4482 from StephanTLavavej/merge-flat_map
StephanTLavavej a168f9d
Merge pull request #4483 from StephanTLavavej/merge-flat_set
StephanTLavavej 8762563
`<flat_map>`: flat_multimap construction test (#4566)
AlexGuteniev 26a4bbc
Merge branch 'main' into merge-flat_map
StephanTLavavej db05784
Merge branch 'main' into merge-flat_set
StephanTLavavej cb5005b
Merge pull request #4580 from StephanTLavavej/merge-flat_map
StephanTLavavej 358ab3b
Merge pull request #4581 from StephanTLavavej/merge-flat_set
StephanTLavavej 0f5adda
`<flat_map>`: more `flat_multimap` coverage copied from `flat_map` (#…
AlexGuteniev 878ac68
Merge branch 'main' into merge-flat_map
StephanTLavavej a1a92d6
Merge branch 'main' into merge-flat_set
StephanTLavavej 5a8e601
Merge pull request #4601 from StephanTLavavej/merge-flat_map
StephanTLavavej cb88685
Merge pull request #4602 from StephanTLavavej/merge-flat_set
StephanTLavavej 5b10538
`<flat_map>`: Unwrap `flat_(multi)map`'s iterators (#4650)
frederick-vs-ja 6b62632
Merge branch 'main' into merge-flat_map
StephanTLavavej 6d6b2d6
Merge branch 'main' into merge-flat_set
StephanTLavavej afeb4f4
Merge pull request #4690 from StephanTLavavej/merge-flat_map
StephanTLavavej 890d000
Merge pull request #4691 from StephanTLavavej/merge-flat_set
StephanTLavavej be61c29
Merge branch 'main' into merge-flat_map
StephanTLavavej 259c177
Merge branch 'main' into merge-flat_set
StephanTLavavej 8f11937
Merge pull request #4735 from StephanTLavavej/merge-flat_map
StephanTLavavej 29ea8e9
Merge pull request #4736 from StephanTLavavej/merge-flat_set
StephanTLavavej 2dd7ea9
Merge branch 'main' into duanqn/flat_map
duanqn 73f9694
Merge pull request #4774 from duanqn/duanqn/flat_map
StephanTLavavej 1d8e8e2
Fix insert for flat_map and flat_multimap (#4778)
duanqn 0d6df8b
`<flat_map>`: Fix ordering in insertion and access control in constru…
frederick-vs-ja baacc79
Merge branch 'main' into merge-flat_map
StephanTLavavej cd6f83a
Merge branch 'main' into merge-flat_set
StephanTLavavej 41c773f
Merge pull request #4832 from StephanTLavavej/merge-flat_map
StephanTLavavej 5b6010e
Merge pull request #4833 from StephanTLavavej/merge-flat_set
StephanTLavavej c5704d3
Merge branch 'main' into merge-flat_map
StephanTLavavej a765646
Merge branch 'main' into merge-flat_set
StephanTLavavej c726d8f
Merge pull request #4891 from StephanTLavavej/merge-flat_map
StephanTLavavej f26893f
Merge pull request #4892 from StephanTLavavej/merge-flat_set
StephanTLavavej f00e991
Merge branch 'main' into reformat-flat_map
StephanTLavavej 9618209
Regen clang-format, no manual changes.
StephanTLavavej 770b2fc
Merge branch 'main' into reformat-flat_set
StephanTLavavej f8acc4f
Regen clang-format, no manual changes.
StephanTLavavej 7bd29ca
Add newlines to avoid long long lines.
StephanTLavavej f6805ee
Merge pull request #4949 from StephanTLavavej/reformat-flat_set
StephanTLavavej 3bdfd74
Merge pull request #4948 from StephanTLavavej/reformat-flat_map
StephanTLavavej 0e281d0
Merge remote-tracking branch 'origin/feature/flat_set' into flat_map
CaseyCarter 46cc8e7
Eliminate duplicate definitions of `sorted_unique` et al.
CaseyCarter 9477260
Merge pull request #4967 from CaseyCarter/flat_map
CaseyCarter c02b6d6
Merge remote-tracking branch 'origin/main' into flat_map
CaseyCarter 86ca2d3
Move `sorted_unique` et al. into `<vector>`
CaseyCarter af123ee
Merge pull request #4969 from CaseyCarter/flat_map-merge
CaseyCarter 4a24161
Merge branch 'main' into merge-flat_map
StephanTLavavej 6c18dc4
Merge pull request #5021 from StephanTLavavej/merge-flat_map
StephanTLavavej dc266ed
Add visualizer for `std::flat_map` (#4887)
Nerixyz f6a6a2a
Merge branch 'main' into merge-flat_map
StephanTLavavej c819e49
Merge pull request #5052 from StephanTLavavej/merge-flat_map
StephanTLavavej 027f330
Reject `vector<bool>` and deduplicate mechanisms for `flat_meow` (#5045)
frederick-vs-ja aa91f3f
Merge branch 'main' into merge-flat_map
StephanTLavavej fbe5394
Merge pull request #5055 from StephanTLavavej/merge-flat_map
StephanTLavavej 16df2e6
Merge branch 'main' into merge-flat_map
StephanTLavavej 088187f
Merge pull request #5085 from StephanTLavavej/merge-flat_map
StephanTLavavej 53a43ef
Merge branch 'main' into merge-flat_map
StephanTLavavej de6c066
Merge pull request #5189 from StephanTLavavej/merge-flat_map
StephanTLavavej b68983d
Merge branch 'main' into merge-flat_map
StephanTLavavej 9401dbc
clang-format, no manual changes: Improve CTAD.
StephanTLavavej 85bd0d9
Update libcxx/expected_results.txt for flat_map.
StephanTLavavej 9297219
Mark x64-specific failures as SKIPPED.
StephanTLavavej 797b6f3
Merge pull request #5250 from StephanTLavavej/merge-flat_map
StephanTLavavej 3106741
Merge branch 'main' into merge-flat_map
StephanTLavavej ef7c3fc
Merge pull request #5258 from StephanTLavavej/merge-flat_map
StephanTLavavej d0b4d2d
Merge branch 'main' into merge-flat_map
StephanTLavavej 844dd56
Merge pull request #5305 from StephanTLavavej/merge-flat_map
StephanTLavavej 41b1826
`<flat_map>`: Fix several bugs found by libcxx tests (#5306)
frederick-vs-ja 608e4fa
Merge branch 'main' into merge-flat_map
StephanTLavavej 33349a4
Merge pull request #5339 from StephanTLavavej/merge-flat_map
StephanTLavavej 956149e
Add visualizer for `std::flat_set` and flat-map iterators (#5353)
Nerixyz d1b6318
Merge branch 'main' into merge-flat_map
StephanTLavavej e54056f
Recategorize libcxx failures from scratch.
StephanTLavavej 56d4f84
Merge pull request #5357 from StephanTLavavej/merge-flat_map
StephanTLavavej 8f584f4
Fix [flat.map.access] bugs found by libcxx tests (#5414)
seishun 058de5c
Fix [flat.map.modifiers] bugs found by libcxx tests (#5419)
seishun 2fabe62
`<flat_map>`: Restore use of `push_back` in `flat_(multi)map::insert`…
frederick-vs-ja f88263f
Merge branch 'main' into merge-flat_map
StephanTLavavej 30abbdd
Merge pull request #5426 from StephanTLavavej/merge-flat_map
StephanTLavavej 0e90092
`<flat_map>`: explain test failures caused by being moved-out (#5451)
AlexGuteniev 9299901
`<flat_map>`: Workaround for CWG-2369 in deduction guides (#5455)
frederick-vs-ja 5a1bf15
`<flat_map>`: move invariants preserving (#5454)
AlexGuteniev 3252573
`<flat_map>`: drop bogus exception specifications (#5460)
AlexGuteniev d2e3e14
`<flat_set>`: Fix some significant bugs caught by latest libcxx tests…
frederick-vs-ja 3280d7e
Make implementation details of `flat_meow` more similar (#5474)
frederick-vs-ja 8b1ec13
Merge branch 'main' into merge-flat_map
StephanTLavavej d05e29c
Categorize flat_set failures.
StephanTLavavej 66fbe72
Merge pull request #5486 from StephanTLavavej/merge-flat_map
StephanTLavavej 208001b
Use the `_Transparent` concept for `flat_meow` (#5499)
frederick-vs-ja 8d7368c
`<flat_set>`: some libc++ tests look bogus (#5508)
AlexGuteniev bfa5444
`<flat_set>`: insert range invariant fix (#5514)
AlexGuteniev 97f5f76
Merge branch 'main' into merge-flat_map
StephanTLavavej 5a05922
Merge pull request #5515 from StephanTLavavej/merge-flat_map
StephanTLavavej bbef8e8
`<flat_set>`: more invariants fixes (#5516)
AlexGuteniev e20fc34
`<flat_map>`: Remove unreachable code (#5520)
seishun 2c570f3
Revert incorrect `<flat_set>` change, and update test failure reason …
AlexGuteniev 20b11b5
Merge branch 'main' into merge-flat_map
StephanTLavavej 5385a5a
Merge pull request #5585 from StephanTLavavej/merge-flat_map
StephanTLavavej 6cde930
Merge branch 'main' into merge-flat_map
StephanTLavavej fb8fde7
Merge pull request #5648 from StephanTLavavej/merge-flat_map
StephanTLavavej 4537edf
Merge branch 'main' into merge-flat_map
StephanTLavavej 8d98a47
Merge pull request #5680 from StephanTLavavej/merge-flat_map
StephanTLavavej e529e37
Merge branch 'main' into flat_map-llvm
StephanTLavavej 1d66330
Merge pull request #5697 from StephanTLavavej/flat_map-llvm
StephanTLavavej 67c4a9f
`<flat_map>`, `<flat_set>`: mark unused variables and typedef libc++ …
AlexGuteniev 5f24d81
Merge branch 'main' into merge-flat-map
StephanTLavavej 438a556
Merge pull request #5722 from StephanTLavavej/merge-flat-map
StephanTLavavej 229e74a
Merge branch 'main' into merge-flat_map
StephanTLavavej 71977b1
Mark flat.map.observers and flat.multimap.observers tests as FAIL for…
StephanTLavavej 01b02f2
Merge pull request #5789 from StephanTLavavej/merge-flat_map
StephanTLavavej ca1ff80
Merge branch 'main' into merge-flat_map
StephanTLavavej 15b0fd1
Merge pull request #5884 from StephanTLavavej/merge-flat_map
StephanTLavavej 5582404
Merge branch 'main' into merge-flat_map
StephanTLavavej 42cd3da
Some tests are now passing.
StephanTLavavej 042eb7b
Categorize new failures.
StephanTLavavej 744ec4b
Merge pull request #5915 from StephanTLavavej/merge-flat_map
StephanTLavavej f09869f
Implement P3567R2 `flat_meow` Fixes (#5882)
frederick-vs-ja 06b512b
flat_multiset::emplace_hint() shall place as close as possible to pro…
vmichal 2ae511b
`flat_[multi]set(initializer_list, ...)` constructors shall not invok…
vmichal 17a08c6
Merge branch 'main' into flat_meow
StephanTLavavej 7e2032d
std.ixx: Avoid interleaving conditional includes.
StephanTLavavej 384c44e
Clarify "leaf-most" comment.
StephanTLavavej b781355
`<vector>`'s `_Clear_guard` shadows/supersedes `_Hash::_Clear_guard`.
StephanTLavavej 44835ba
flat_map: Consistently use CTAD for `_Clear_guard`.
StephanTLavavej d4b57d6
flat_set: Consistently use CTAD and `this/_Other` for `_Clear_guard`.
StephanTLavavej c3e82cb
flat_map and flat_multimap don't need `using _MyBase::_Erase_if;`.
StephanTLavavej d1d9b1c
flat_set: Centralize `_Erase_if`.
StephanTLavavej f4a2c5d
Need to report a Down With Typename bug to EDG.
StephanTLavavej 10a29be
flat_map: `_Erase_if` and the friendship can be private to the base c…
StephanTLavavej 7b22f59
Merge pull request #5938 from StephanTLavavej/flat_meow
StephanTLavavej ae02143
Merge branch 'main' into flat-map-2
StephanTLavavej 853c42c
`<flat_map>`: `_MyBase` => `_Mybase`
StephanTLavavej a02765f
Use `_MSVC_NO_UNIQUE_ADDRESS`.
StephanTLavavej 4670e79
flat_map: Order _Data before _Key_compare, following the Standard.
StephanTLavavej 11a14e8
flat_map: Use braces to construct `value_compare` temporaries.
StephanTLavavej 9b174b7
Add coverage to GH_000545_include_compare.
StephanTLavavej 905da0f
Fix GH 5075 `<flat_map>`: Can we separately compare key and mapped co…
StephanTLavavej 062c918
Consistently modify containers before comparators.
StephanTLavavej 17f1f5d
Consistently comment "// intentionally copy comparator, see LWG-2227".
StephanTLavavej 9a4563e
Construct from _Flat_set_base _Other instead of _Derived _Set.
StephanTLavavej 61bde13
flat_map: Refine _Emplace_hint _STL_INTERNAL_STATIC_ASSERT.
StephanTLavavej bbd8a7b
Update flat_map::at exceptions to match classic. (Without "<K, T>" wh…
StephanTLavavej ae1b197
Overhaul static_asserts and Standard citations.
StephanTLavavej 6b59aa1
Push/undef/pop "msvc".
StephanTLavavej 011ec12
Merge pull request #5952 from StephanTLavavej/flat-map-2
StephanTLavavej 136c6cd
Merge branch 'main' into merge-flat-map
StephanTLavavej 860ccb3
Enable passing tests! <3 <3 <3 =^..^=
StephanTLavavej e845cc9
Merge pull request #5958 from StephanTLavavej/merge-flat-map
StephanTLavavej 18e1eb5
`<flat_map>` `<flat_set>`: Add `_NODISCARD`, remove nested `_Clear_gu…
vmichal eff33b6
`<flat_set>`: Make `flat_(multi)set` insertion exception-safe for non…
frederick-vs-ja 06449cd
Add test coverage for `<flat_set>` to `test_header_units_and_modules.…
vmichal 15d9eff
`<flat_map>`: Simplify duplicate definitions of lookup functions usin…
vmichal 4975692
`<flat_map>`: Ensure different flat_(multi)map specializations don't …
vmichal bad73e6
`<flat_map>`: Unify implementation of `emplace` and `insert` between …
vmichal aed9711
`<flat_meow>`: Misc changes: `const` locals and parameters, more `_ST…
vmichal 8aba27d
`<flat_set>`: `flat_set::emplace` and `emplace_hint` should be constr…
vmichal f8ff3c6
`<flat_meow>`: Don't do extra work in `count()`, `contains()`, and `e…
vmichal 499235a
`<flat_map>`: Minor cleanups of iterator operations in flat_map membe…
vmichal 7d6bac8
`<flat_meow>`: Add tests for all `flat_map` constructors, deduction g…
vmichal 353c169
Properly cite EDG bug affecting C++20 Down With Typename (#6008)
StephanTLavavej 7dc8050
Merge branch 'main' into merge-flat-map
StephanTLavavej fd076f6
Update libcxx failures.
StephanTLavavej 31854d2
Merge pull request #6014 from StephanTLavavej/merge-flat-map
StephanTLavavej 6634774
`<flat_meow>`: Minor cleanups - Use member `begin`/`end` when possibl…
vmichal d86d691
`<flat_meow>`: Implement natvis visualizers for `flat_multimeow`, sim…
vmichal 9068390
`<flat_map>`: Fix new libcxx test failure due to argument type mismat…
vmichal f7961e7
`<flat_set>`, `<flat_map>`: compare for equality instead of equivalen…
AlexGuteniev 9f1c96d
Merge branch 'main' into no-mister-bond-i-expect-you-to-merge
StephanTLavavej d5d3ac2
Switch to Standard mode checks.
StephanTLavavej 29e5fd0
Merge pull request #6033 from StephanTLavavej/no-mister-bond-i-expect…
StephanTLavavej 85e190e
`<flat_meow>`: Minor cleanups (#6034)
StephanTLavavej d935258
`<flat_map>`: Make `_Pairing_iterator_provider::_Iterator` debugging …
vmichal 8c5ec8d
Pass a tinier `value_compare`-like comparator to algorithms (#6038)
frederick-vs-ja 0da1a88
`<flat_meow>`: Remove FIXME comments, add `_Clear_guard` to `erase()`…
StephanTLavavej 21cc7b6
`<flat_map>`, `<flat_set>`: Use inverse key_compare instead of synthe…
AlexGuteniev 94b627b
`<flat_set>`: Use `_STD equal` instead of `_RANGES equal` in `operato…
AlexGuteniev a1b6e7a
Cleanup/fix `flat_map` tests, update citations (#6046)
StephanTLavavej 4871236
Cleanup/improve `flat_set` tests (#6051)
StephanTLavavej b86e0c9
`<flat_meow>`: Update older tests (#6056)
JMazurkiewicz 64904f8
`<flat_meow>`: Audit the implementation (#6057)
StephanTLavavej e48f71b
Merge branch 'main' into the-penultimate-merge
StephanTLavavej 3d6a42b
Merge pull request #6065 from StephanTLavavej/the-penultimate-merge
StephanTLavavej a89f3a7
`<flat_map>`, `<flat_set>`: Mega overhaul! (#6068)
StephanTLavavej 9cb3a5c
`<flat_map>`, `<flat_set>`: Final fixes (#6070)
StephanTLavavej c4f7dea
`_Is_sorted_and_unique` => `_Is_sorted_maybe_unique`
StephanTLavavej d587c3b
`_Msg_not_sorted` => `_Msg_not_sorted_maybe_unique`
StephanTLavavej 89f3b57
`_Msg_replace_not_sorted` => `_Msg_replace_not_sorted_maybe_unique`
StephanTLavavej f71e08f
Manual wrapping for clang-format is no longer necessary.
StephanTLavavej 0d27c5f
Drop `forward` when calling `_Compare_keys`.
StephanTLavavej 95cb999
benchmark: Extract `initializer_list` construction.
StephanTLavavej 1945ad0
flat_map: const overloads of begin()/end() can call values.cbegin()/c…
StephanTLavavej d6b947f
Use `_Not_allocator_for_container` in existing code.
StephanTLavavej de5086a
Add a comment explaining SCARY iterators with citations.
StephanTLavavej c7dfdb7
Add compiler bug workarounds.
StephanTLavavej de130b9
Merge branch 'main' into flat_meow
StephanTLavavej File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,52 @@ | ||
| // Copyright (c) Microsoft Corporation. | ||
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||
|
|
||
| #include <benchmark/benchmark.h> | ||
| #include <flat_map> | ||
| #include <flat_set> | ||
| #include <string> | ||
|
|
||
| using namespace std; | ||
|
|
||
| void flat_map_strings(benchmark::State& state) { | ||
| flat_map<string, int> pieces; | ||
| for (auto _ : state) { | ||
| pieces = {{"soldier"s, 1}, {"soldier"s, 2}, {"soldier"s, 3}, {"soldier"s, 4}, {"soldier"s, 5}, {"soldier"s, 6}, | ||
| {"soldier"s, 7}, {"soldier"s, 8}, {"tower"s, 9}, {"horse"s, 10}, {"elephant"s, 11}, {"vizier"s, 12}, | ||
| {"king"s, 13}, {"elephant"s, 14}, {"horse"s, 15}, {"tower"s, 16}}; | ||
| benchmark::DoNotOptimize(pieces); | ||
| } | ||
| } | ||
|
|
||
| void flat_set_strings(benchmark::State& state) { | ||
| flat_set<string> pieces; | ||
| for (auto _ : state) { | ||
| pieces = {"soldier"s, "soldier"s, "soldier"s, "soldier"s, "soldier"s, "soldier"s, "soldier"s, "soldier"s, | ||
| "tower"s, "horse"s, "elephant"s, "vizier"s, "king"s, "elephant"s, "horse"s, "tower"s}; | ||
| benchmark::DoNotOptimize(pieces); | ||
| } | ||
| } | ||
|
|
||
| void flat_map_integers(benchmark::State& state) { | ||
| flat_map<int, int> pieces; | ||
| for (auto _ : state) { | ||
| pieces = {{'s', 1}, {'s', 2}, {'s', 3}, {'s', 4}, {'s', 5}, {'s', 6}, {'s', 7}, {'s', 8}, {'T', 9}, {'H', 10}, | ||
| {'E', 11}, {'V', 12}, {'K', 13}, {'E', 14}, {'H', 15}, {'T', 16}}; | ||
| benchmark::DoNotOptimize(pieces); | ||
| } | ||
| } | ||
|
|
||
| void flat_set_integers(benchmark::State& state) { | ||
| flat_set<int> pieces; | ||
| for (auto _ : state) { | ||
| pieces = {'s', 's', 's', 's', 's', 's', 's', 's', 'T', 'H', 'E', 'V', 'K', 'E', 'H', 'T'}; | ||
| benchmark::DoNotOptimize(pieces); | ||
| } | ||
| } | ||
|
|
||
| BENCHMARK(flat_map_strings); | ||
| BENCHMARK(flat_set_strings); | ||
| BENCHMARK(flat_map_integers); | ||
| BENCHMARK(flat_set_integers); | ||
|
|
||
| BENCHMARK_MAIN(); | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.