diff --git a/.gitignore b/.gitignore index 2eec3746..2b76deba 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ /doc/html/ +*.sh +*.txt +u64benchmarks +.vscode/ \ No newline at end of file diff --git a/include/boost/unordered/unordered_flat_map.hpp b/include/boost/unordered/unordered_flat_map.hpp index e39c194d..14f3aa53 100644 --- a/include/boost/unordered/unordered_flat_map.hpp +++ b/include/boost/unordered/unordered_flat_map.hpp @@ -32,12 +32,15 @@ namespace boost { struct map_types { using key_type = Key; - using init_type = std::pair; - using moved_type = std::pair; + using raw_key_type = typename std::remove_const::type; + using raw_value_type = typename std::remove_const::type; + + using init_type = std::pair; + using moved_type = std::pair; using value_type = std::pair; template - static K const& extract(std::pair const& kv) + static raw_key_type const& extract(std::pair const& kv) { return kv.first; } diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 99d29ca4..0a01a95b 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -32,70 +32,70 @@ project msvc:on ; -run unordered/prime_fmod_tests.cpp ; -run unordered/fwd_set_test.cpp ; -run unordered/fwd_map_test.cpp ; -run unordered/allocator_traits.cpp ; -run unordered/minimal_allocator.cpp ; -run unordered/compile_set.cpp ; -run unordered/compile_map.cpp ; -run unordered/noexcept_tests.cpp ; -run unordered/link_test_1.cpp unordered/link_test_2.cpp ; -run unordered/incomplete_test.cpp ; -run unordered/simple_tests.cpp ; -run unordered/equivalent_keys_tests.cpp ; -run unordered/constructor_tests.cpp ; -run unordered/copy_tests.cpp ; -run unordered/move_tests.cpp ; -run unordered/post_move_tests.cpp ; -run unordered/assign_tests.cpp ; -run unordered/insert_tests.cpp ; -run unordered/insert_stable_tests.cpp ; -run unordered/insert_hint_tests.cpp ; -run unordered/emplace_tests.cpp ; -run unordered/unnecessary_copy_tests.cpp ; -run unordered/erase_tests.cpp : : : BOOST_UNORDERED_SUPPRESS_DEPRECATED ; -run unordered/erase_equiv_tests.cpp ; -run unordered/extract_tests.cpp ; -run unordered/node_handle_tests.cpp ; -run unordered/merge_tests.cpp ; -compile-fail unordered/insert_node_type_fail.cpp : UNORDERED_TEST_MAP : insert_node_type_fail_map ; -compile-fail unordered/insert_node_type_fail.cpp : UNORDERED_TEST_MULTIMAP : insert_node_type_fail_multimap ; -compile-fail unordered/insert_node_type_fail.cpp : UNORDERED_TEST_SET : insert_node_type_fail_set ; -compile-fail unordered/insert_node_type_fail.cpp : UNORDERED_TEST_MULTISET : insert_node_type_fail_multiset ; -run unordered/find_tests.cpp ; -run unordered/at_tests.cpp ; -run unordered/bucket_tests.cpp ; -run unordered/load_factor_tests.cpp ; -run unordered/rehash_tests.cpp ; -run unordered/equality_tests.cpp ; -run unordered/swap_tests.cpp ; -run unordered/deduction_tests.cpp ; -run unordered/scoped_allocator.cpp : : : msvc-14.0:no ; -run unordered/transparent_tests.cpp ; -run unordered/reserve_tests.cpp ; -run unordered/contains_tests.cpp ; -run unordered/erase_if.cpp ; -run unordered/scary_tests.cpp ; +# run unordered/prime_fmod_tests.cpp ; +# run unordered/fwd_set_test.cpp ; +# run unordered/fwd_map_test.cpp ; +# run unordered/allocator_traits.cpp ; +# run unordered/minimal_allocator.cpp ; +# run unordered/compile_set.cpp ; +# run unordered/compile_map.cpp ; +# run unordered/noexcept_tests.cpp ; +# run unordered/link_test_1.cpp unordered/link_test_2.cpp ; +# run unordered/incomplete_test.cpp ; +# run unordered/simple_tests.cpp ; +# run unordered/equivalent_keys_tests.cpp ; +# run unordered/constructor_tests.cpp ; +# run unordered/copy_tests.cpp ; +# run unordered/move_tests.cpp ; +# run unordered/post_move_tests.cpp ; +# run unordered/assign_tests.cpp ; +# run unordered/insert_tests.cpp ; +# run unordered/insert_stable_tests.cpp ; +# run unordered/insert_hint_tests.cpp ; +# run unordered/emplace_tests.cpp ; +# run unordered/unnecessary_copy_tests.cpp ; +# run unordered/erase_tests.cpp : : : BOOST_UNORDERED_SUPPRESS_DEPRECATED ; +# run unordered/erase_equiv_tests.cpp ; +# run unordered/extract_tests.cpp ; +# run unordered/node_handle_tests.cpp ; +# run unordered/merge_tests.cpp ; +# compile-fail unordered/insert_node_type_fail.cpp : UNORDERED_TEST_MAP : insert_node_type_fail_map ; +# compile-fail unordered/insert_node_type_fail.cpp : UNORDERED_TEST_MULTIMAP : insert_node_type_fail_multimap ; +# compile-fail unordered/insert_node_type_fail.cpp : UNORDERED_TEST_SET : insert_node_type_fail_set ; +# compile-fail unordered/insert_node_type_fail.cpp : UNORDERED_TEST_MULTISET : insert_node_type_fail_multiset ; +# run unordered/find_tests.cpp ; +# run unordered/at_tests.cpp ; +# run unordered/bucket_tests.cpp ; +# run unordered/load_factor_tests.cpp ; +# run unordered/rehash_tests.cpp ; +# run unordered/equality_tests.cpp ; +# run unordered/swap_tests.cpp ; +# run unordered/deduction_tests.cpp ; +# run unordered/scoped_allocator.cpp : : : msvc-14.0:no ; +# run unordered/transparent_tests.cpp ; +# run unordered/reserve_tests.cpp ; +# run unordered/contains_tests.cpp ; +# run unordered/erase_if.cpp ; +# run unordered/scary_tests.cpp ; -run unordered/compile_set.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_compile_set ; -run unordered/compile_map.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_compile_map ; -run unordered/copy_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_copy ; -run unordered/move_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_move ; -run unordered/assign_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_assign ; +# run unordered/compile_set.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_compile_set ; +# run unordered/compile_map.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_compile_map ; +# run unordered/copy_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_copy ; +# run unordered/move_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_move ; +# run unordered/assign_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_assign ; -run exception/constructor_exception_tests.cpp ; -run exception/copy_exception_tests.cpp ; -run exception/assign_exception_tests.cpp ; -run exception/move_assign_exception_tests.cpp ; -run exception/insert_exception_tests.cpp ; -run exception/erase_exception_tests.cpp ; -run exception/rehash_exception_tests.cpp ; -run exception/swap_exception_tests.cpp : : : BOOST_UNORDERED_SWAP_METHOD=2 ; -run exception/merge_exception_tests.cpp ; +# run exception/constructor_exception_tests.cpp ; +# run exception/copy_exception_tests.cpp ; +# run exception/assign_exception_tests.cpp ; +# run exception/move_assign_exception_tests.cpp ; +# run exception/insert_exception_tests.cpp ; +# run exception/erase_exception_tests.cpp ; +# run exception/rehash_exception_tests.cpp ; +# run exception/swap_exception_tests.cpp : : : BOOST_UNORDERED_SWAP_METHOD=2 ; +# run exception/merge_exception_tests.cpp ; -run quick.cpp ; +# run quick.cpp ; rule build_foa ( name ) {