diff options
author | Eric Fiselier <eric@efcs.ca> | 2016-10-16 03:21:35 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2016-10-16 03:21:35 +0000 |
commit | 46c0fcb2b3fb42e3496f3de8c548f87d2f9d3f30 (patch) | |
tree | d8c31b45acedc0ae29b1ac27ee4f0f33105a2c31 /include/optional | |
parent | 846edfb83728df36f47111e3e3a8123f2dfa1e56 (diff) |
Update status for std::optional LWG issues and fix an optional SFINAE bug
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284323 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/optional')
-rw-r--r-- | include/optional | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/include/optional b/include/optional index 46252c7e0..c64aa8f7f 100644 --- a/include/optional +++ b/include/optional @@ -681,12 +681,14 @@ public: // LWG2756 template <class _Up = value_type, class = enable_if_t - < - !is_same_v<_Up, optional> && - !(is_same_v<_Up, value_type> && is_scalar_v<value_type>) && - is_constructible_v<value_type, _Up> && - is_assignable_v<value_type&, _Up> - > + <__lazy_and< + integral_constant<bool, + !is_same_v<decay_t<_Up>, optional> && + !(is_same_v<_Up, value_type> && is_scalar_v<value_type>) + >, + is_constructible<value_type, _Up>, + is_assignable<value_type&, _Up> + >::value> > _LIBCPP_INLINE_VISIBILITY optional& |