summaryrefslogtreecommitdiff
path: root/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp')
-rw-r--r--libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp27
1 files changed, 23 insertions, 4 deletions
diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp
index e40f1ed6dbbf..97cf59defc97 100644
--- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp
@@ -98,14 +98,33 @@ struct AddressCompare {
}
};
+#if TEST_STD_VER >= 20
+class trivially_equality_comparable {
+public:
+ constexpr trivially_equality_comparable(int i) : i_(i) {}
+ bool operator==(const trivially_equality_comparable&) const = default;
+
+private:
+ int i_;
+};
+
+#endif
+
TEST_CONSTEXPR_CXX20 bool test() {
types::for_each(types::cpp17_input_iterator_list<int*>(), TestIter2<int, types::cpp17_input_iterator_list<int*> >());
- types::for_each(types::cpp17_input_iterator_list<char*>(), TestIter2<char, types::cpp17_input_iterator_list<char*> >());
+ types::for_each(
+ types::cpp17_input_iterator_list<char*>(), TestIter2<char, types::cpp17_input_iterator_list<char*> >());
types::for_each(types::cpp17_input_iterator_list<AddressCompare*>(),
- TestIter2<AddressCompare, types::cpp17_input_iterator_list<AddressCompare*> >());
+ TestIter2<AddressCompare, types::cpp17_input_iterator_list<AddressCompare*> >());
types::for_each(types::integral_types(), TestNarrowingEqualTo());
+#if TEST_STD_VER >= 20
+ types::for_each(
+ types::cpp17_input_iterator_list<trivially_equality_comparable*>{},
+ TestIter2<trivially_equality_comparable, types::cpp17_input_iterator_list<trivially_equality_comparable*>>{});
+#endif
+
return true;
}
@@ -119,9 +138,9 @@ int main(int, char**) {
#endif
types::for_each(types::as_pointers<types::cv_qualified_versions<int> >(),
- TestIter2<int, types::as_pointers<types::cv_qualified_versions<int> > >());
+ TestIter2<int, types::as_pointers<types::cv_qualified_versions<int> > >());
types::for_each(types::as_pointers<types::cv_qualified_versions<char> >(),
- TestIter2<char, types::as_pointers<types::cv_qualified_versions<char> > >());
+ TestIter2<char, types::as_pointers<types::cv_qualified_versions<char> > >());
{
Derived d;