Implement P0777: Treating unnecessay decay

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@324398 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Marshall Clow
2018-02-06 20:56:55 +00:00
parent 68b20ca4d9
commit 52f9ca28a3
4 changed files with 12 additions and 14 deletions

View File

@@ -612,8 +612,8 @@ private:
};
template <class _Up>
using _CheckOptionalArgsCtor = conditional_t<
!is_same_v<decay_t<_Up>, in_place_t> &&
!is_same_v<decay_t<_Up>, optional>,
!is_same_v<__uncvref_t<_Up>, in_place_t> &&
!is_same_v<__uncvref_t<_Up>, optional>,
_CheckOptionalArgsConstructor,
__check_tuple_constructor_fail
>;
@@ -761,7 +761,7 @@ public:
class = enable_if_t
<__lazy_and<
integral_constant<bool,
!is_same_v<decay_t<_Up>, optional> &&
!is_same_v<__uncvref_t<_Up>, optional> &&
!(is_same_v<_Up, value_type> && is_scalar_v<value_type>)
>,
is_constructible<value_type, _Up>,