diff options
Diffstat (limited to 'libcxx/include')
-rw-r--r-- | libcxx/include/__expected/expected.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libcxx/include/__expected/expected.h b/libcxx/include/__expected/expected.h index 0f994e2..f618b20 100644 --- a/libcxx/include/__expected/expected.h +++ b/libcxx/include/__expected/expected.h @@ -507,7 +507,9 @@ private: _And< is_constructible<_Tp, _UfQual>, is_constructible<_Err, _OtherErrQual>, _If<_Not<is_same<remove_cv_t<_Tp>, bool>>::value, - _And< _Not<is_constructible<_Tp, expected<_Up, _OtherErr>&>>, + _And< + _Not<_And<is_same<_Tp, _Up>, is_same<_Err, _OtherErr>>>, // use the copy constructor instead, see #92676 + _Not<is_constructible<_Tp, expected<_Up, _OtherErr>&>>, _Not<is_constructible<_Tp, expected<_Up, _OtherErr>>>, _Not<is_constructible<_Tp, const expected<_Up, _OtherErr>&>>, _Not<is_constructible<_Tp, const expected<_Up, _OtherErr>>>, |