https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117858

--- Comment #9 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Looks like a copy & paste error in r15-2309-g6d86486292acbe:

--- a/libstdc++-v3/include/std/optional
+++ b/libstdc++-v3/include/std/optional
@@ -1043,7 +1043,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION

       template<typename _Up>
 #ifdef _GLIBCXX_USE_CONSTRAINTS_FOR_OPTIONAL
-       requires (!is_same_v<optional, remove_cvref_t<_Up>>)
+       requires (!is_same_v<_Tp, remove_cvref_t<_Up>>)
          && is_constructible_v<_Tp, const _Up&>
          && is_assignable_v<_Tp&, const _Up&>
          && (!__converts_from_optional<_Tp, _Up>::value)
@@ -1077,7 +1077,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION

       template<typename _Up>
 #ifdef _GLIBCXX_USE_CONSTRAINTS_FOR_OPTIONAL
-       requires (!is_same_v<optional, remove_cvref_t<_Up>>)
+       requires (!is_same_v<_Tp, remove_cvref_t<_Up>>)
          && is_constructible_v<_Tp, _Up>
          && is_assignable_v<_Tp&, _Up>
          && (!__converts_from_optional<_Tp, _Up>::value)

Reply via email to