Implement N3421; comparison predicates<void>
llvm-svn: 187357
diff --git a/libcxx/test/utilities/function.objects/comparisons/equal_to.pass.cpp b/libcxx/test/utilities/function.objects/comparisons/equal_to.pass.cpp
index 988e957..7904887 100644
--- a/libcxx/test/utilities/function.objects/comparisons/equal_to.pass.cpp
+++ b/libcxx/test/utilities/function.objects/comparisons/equal_to.pass.cpp
@@ -22,4 +22,12 @@
static_assert((std::is_base_of<std::binary_function<int, int, bool>, F>::value), "");
assert(f(36, 36));
assert(!f(36, 6));
+#if _LIBCPP_STD_VER > 11
+ typedef std::equal_to<> F2;
+ const F2 f2 = F2();
+ assert(f2(36, 36));
+ assert(!f2(36, 6));
+ assert(f2(36, 36.0));
+ assert(f2(36.0, 36L));
+#endif
}
diff --git a/libcxx/test/utilities/function.objects/comparisons/greater.pass.cpp b/libcxx/test/utilities/function.objects/comparisons/greater.pass.cpp
index 2cadd6d..8e9a891 100644
--- a/libcxx/test/utilities/function.objects/comparisons/greater.pass.cpp
+++ b/libcxx/test/utilities/function.objects/comparisons/greater.pass.cpp
@@ -23,4 +23,15 @@
assert(!f(36, 36));
assert(f(36, 6));
assert(!f(6, 36));
+#if _LIBCPP_STD_VER > 11
+ typedef std::greater<> F2;
+ const F2 f2 = F2();
+ assert(!f2(36, 36));
+ assert(f2(36, 6));
+ assert(!f2(6, 36));
+ assert( f2(36, 6.0));
+ assert( f2(36.0, 6));
+ assert(!f2(6, 36.0));
+ assert(!f2(6.0, 36));
+#endif
}
diff --git a/libcxx/test/utilities/function.objects/comparisons/greater_equal.pass.cpp b/libcxx/test/utilities/function.objects/comparisons/greater_equal.pass.cpp
index 3ecadd4..63aad67 100644
--- a/libcxx/test/utilities/function.objects/comparisons/greater_equal.pass.cpp
+++ b/libcxx/test/utilities/function.objects/comparisons/greater_equal.pass.cpp
@@ -23,4 +23,15 @@
assert(f(36, 36));
assert(f(36, 6));
assert(!f(6, 36));
+#if _LIBCPP_STD_VER > 11
+ typedef std::greater_equal<> F2;
+ const F2 f2 = F2();
+ assert(f2(36, 36));
+ assert(f2(36, 6));
+ assert(!f2(6, 36));
+ assert( f2(36, 6.0));
+ assert( f2(36.0, 6));
+ assert(!f2(6, 36.0));
+ assert(!f2(6.0, 36));
+#endif
}
diff --git a/libcxx/test/utilities/function.objects/comparisons/less.pass.cpp b/libcxx/test/utilities/function.objects/comparisons/less.pass.cpp
index 0946bbf..6060964 100644
--- a/libcxx/test/utilities/function.objects/comparisons/less.pass.cpp
+++ b/libcxx/test/utilities/function.objects/comparisons/less.pass.cpp
@@ -23,4 +23,15 @@
assert(!f(36, 36));
assert(!f(36, 6));
assert(f(6, 36));
+#if _LIBCPP_STD_VER > 11
+ typedef std::less<> F2;
+ const F2 f2 = F2();
+ assert(!f2(36, 36));
+ assert(!f2(36, 6));
+ assert( f2(6, 36));
+ assert(!f2(36, 6.0));
+ assert(!f2(36.0, 6));
+ assert( f2(6, 36.0));
+ assert( f2(6.0, 36));
+#endif
}
diff --git a/libcxx/test/utilities/function.objects/comparisons/less_equal.pass.cpp b/libcxx/test/utilities/function.objects/comparisons/less_equal.pass.cpp
index 818af4a..346e68b 100644
--- a/libcxx/test/utilities/function.objects/comparisons/less_equal.pass.cpp
+++ b/libcxx/test/utilities/function.objects/comparisons/less_equal.pass.cpp
@@ -23,4 +23,15 @@
assert(f(36, 36));
assert(!f(36, 6));
assert(f(6, 36));
+#if _LIBCPP_STD_VER > 11
+ typedef std::less_equal<> F2;
+ const F2 f2 = F2();
+ assert( f2(36, 36));
+ assert(!f2(36, 6));
+ assert( f2(6, 36));
+ assert(!f2(36, 6.0));
+ assert(!f2(36.0, 6));
+ assert( f2(6, 36.0));
+ assert( f2(6.0, 36));
+#endif
}
diff --git a/libcxx/test/utilities/function.objects/comparisons/not_equal_to.pass.cpp b/libcxx/test/utilities/function.objects/comparisons/not_equal_to.pass.cpp
index 0b8f8dd..d481e47 100644
--- a/libcxx/test/utilities/function.objects/comparisons/not_equal_to.pass.cpp
+++ b/libcxx/test/utilities/function.objects/comparisons/not_equal_to.pass.cpp
@@ -22,4 +22,14 @@
static_assert((std::is_base_of<std::binary_function<int, int, bool>, F>::value), "");
assert(!f(36, 36));
assert(f(36, 6));
+#if _LIBCPP_STD_VER > 11
+ typedef std::not_equal_to<> F2;
+ const F2 f2 = F2();
+ assert(!f2(36, 36));
+ assert( f2(36, 6));
+ assert( f2(36, 6.0));
+ assert( f2(36.0, 6));
+ assert(!f2(36.0, 36));
+ assert(!f2(36, 36.0));
+#endif
}