llvm-project/libcxx
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
..
cmake Fix PR26622 - Make CheckLibcxxAtomic.cmake use the libc++ headers. 2016-02-20 00:24:43 +00:00
docs [docs] Remove references to autoconf build. 2016-01-30 01:11:42 +00:00
include Fix LWG issue 2469 - Use piecewise construction in map::operator[]. 2016-03-31 03:13:37 +00:00
lib Re-commit "Introduce a cmake module to figure out whether we need to link with libatomic." 2016-02-11 12:43:04 +00:00
src Reorganize _LIBCPP_LOCALE__L_EXTENSIONS 2016-03-09 15:39:39 +00:00
test Fix LWG issue 2469 - Use piecewise construction in map::operator[]. 2016-03-31 03:13:37 +00:00
utils Add more missing license headers 2016-01-19 21:58:49 +00:00
www Make std::addressof constexpr in C++17 (Clang only). 2016-03-17 03:30:56 +00:00
.arcconfig Update Arcanist config to point to reviews.llvm.org 2014-06-10 18:29:36 +00:00
.gitignore [libc++] Refactor test components into modules. 2015-01-09 18:03:29 +00:00
CMakeLists.txt libc++: fix typo 2016-03-05 14:22:02 +00:00
CREDITS.TXT Add self to CREDITS.txt 2015-02-26 00:48:22 +00:00
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:39:53 +00:00
TODO.TXT Test commit to see if libcxx.llvm.org/docs builds 2015-09-04 22:57:00 +00:00