summaryrefslogtreecommitdiff
path: root/include/optional
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2016-10-16 03:21:35 +0000
committerEric Fiselier <eric@efcs.ca>2016-10-16 03:21:35 +0000
commit46c0fcb2b3fb42e3496f3de8c548f87d2f9d3f30 (patch)
treed8c31b45acedc0ae29b1ac27ee4f0f33105a2c31 /include/optional
parent846edfb83728df36f47111e3e3a8123f2dfa1e56 (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/optional14
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&