[libc++] Rework compressed pair constructors.
authorEric Fiselier <eric@efcs.ca>
Mon, 16 Dec 2019 23:23:39 +0000 (18:23 -0500)
committerEric Fiselier <eric@efcs.ca>
Mon, 16 Dec 2019 23:38:58 +0000 (18:38 -0500)
commit549545b64aab77d2a1784062451ee1c33f8324d2
tree54085e795e52088e247d055f92782ad4e002d2e3
parentf63b64c0c3b486f164c3c66cce9f13df2bac6b6e
[libc++] Rework compressed pair constructors.

This patch de-duplicates most compressed pair constructors
to use the same code in C++11 and C++03.

Part of doing that is deleting the "__second_tag()" and replacing
it with a "__value_init_tag()" which has the same effect, but
allows for the removal of the special "one-arg" first element
constructor.

This patch is intended to have no semantic change.
12 files changed:
libcxx/include/__functional_03
libcxx/include/__hash_table
libcxx/include/__split_buffer
libcxx/include/__tree
libcxx/include/deque
libcxx/include/forward_list
libcxx/include/future
libcxx/include/list
libcxx/include/memory
libcxx/include/string
libcxx/include/vector
libcxx/test/libcxx/containers/unord/unord.set/missing_hash_specialization.fail.cpp