[libc++] Take 2: Implement LWG 3158
authorLouis Dionne <ldionne@apple.com>
Fri, 27 Sep 2019 15:06:52 +0000 (15:06 +0000)
committerLouis Dionne <ldionne@apple.com>
Fri, 27 Sep 2019 15:06:52 +0000 (15:06 +0000)
commit59e26308e60a08a5a4534ba827744564c71d7aff
tree153a8db3ca1c30a66342e5a40c01cd1861508c5c
parent7ca15ba73f67f1d3b6652cb19bbf78731e3b128d
[libc++] Take 2: Implement LWG 3158

Summary:
LWG 3158 marks the allocator_arg_t constructor of std::tuple as
conditionnally explicit based on whether the default constructors
of the tuple's members are explicitly default constructible.

This was previously committed as r372778 and reverted in r372832 due to
the commit breaking LLVM's build in C++14 mode. This issue has now been
addressed.

Reviewers: mclow.lists

Subscribers: christof, jkorous, dexonsmith, libcxx-commits

Tags: #libc

Differential Revision: https://reviews.llvm.org/D65232

llvm-svn: 373092
libcxx/include/tuple
libcxx/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc.fail.cpp [new file with mode: 0644]
libcxx/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc.pass.cpp
libcxx/www/cxx2a_status.html
libcxx/www/upcoming_meeting.html