llvm-project/libcxx/test/std/containers/associative
Eric Fiselier 54f0cda625 Fix LWG issue 2469 - Use piecewise construction in map::operator[].
map's allocator may only be used to construct objects of 'value_type',
or in this case 'pair<const Key, Value>'. In order to respect this requirement
in operator[], which requires default constructing the 'mapped_type', we have
to use pair's piecewise constructor with '(tuple<Kep>, tuple<>)'.

Unfortunately we still need to provide a fallback implementation for C++03
since we don't have <tuple>. Even worse this fallback is the last remaining
user of '__hash_map_node_destructor' and '__construct_node_with_key'.

This patch also switches try_emplace over to __tree.__emplace_unique_key_args.

llvm-svn: 264989
2016-03-31 03:13:37 +00:00
..
map Fix LWG issue 2469 - Use piecewise construction in map::operator[]. 2016-03-31 03:13:37 +00:00
multimap Teach __tree how to handle map's __value_type 2016-03-31 02:15:15 +00:00
multiset Teach __tree how to handle map's __value_type 2016-03-31 02:15:15 +00:00
set Teach __tree how to handle map's __value_type 2016-03-31 02:15:15 +00:00
iterator_types.pass.cpp Cleanup node-type handling in the associative containers. 2016-02-20 05:28:30 +00:00
tree_balance_after_insert.pass.cpp
tree_left_rotate.pass.cpp
tree_remove.pass.cpp
tree_right_rotate.pass.cpp