_GLIBCXX20_CONSTEXPR
__new_allocator(const __new_allocator<_Tp1>&) _GLIBCXX_USE_NOEXCEPT { }
+#if __cplusplus >= 201103L
+ __new_allocator& operator=(const __new_allocator&) = default;
+#endif
+
#if __cplusplus <= 201703L
~__new_allocator() _GLIBCXX_USE_NOEXCEPT { }
}
#endif
+#if __cplusplus >= 201103L
+ _GLIBCXX14_CONSTEXPR complex(const complex&) = default;
+#endif
+
#if __cplusplus > 202002L
template<typename _Up>
explicit(!requires(_Up __u) { value_type{__u}; })
}
#endif
+#if __cplusplus >= 201103L
+ _GLIBCXX14_CONSTEXPR complex(const complex&) = default;
+#endif
+
#if __cplusplus > 202002L
template<typename _Up>
explicit(!requires(_Up __u) { value_type{__u}; })
}
#endif
+#if __cplusplus >= 201103L
+ _GLIBCXX14_CONSTEXPR complex(const complex&) = default;
+#endif
+
#if __cplusplus > 202002L
template<typename _Up>
explicit(!requires(_Up __u) { value_type{__u}; })
// Let the compiler synthesize the copy and assignment
// operator. It always does a pretty good job.
+ constexpr complex(const complex&) = default;
constexpr complex& operator=(const complex&) = default;
template<typename _Up>