In C++03, a bunch of the arithmetic/logical/comparison functors (such as add/equal_to/logical_or) were defined as deriving from binary_funtion. That restriction was removed in C++11, but the tests still check for this. Change the test to look for the embedded types first_argument/second_argument/result_type. No change to the library, just more standards-compliant tests. Thanks to STL @ Microsoft for the suggestion.

llvm-svn: 225375
diff --git a/libcxx/test/std/utilities/function.objects/arithmetic.operations/plus.pass.cpp b/libcxx/test/std/utilities/function.objects/arithmetic.operations/plus.pass.cpp
index 44001a0..3c093fc 100644
--- a/libcxx/test/std/utilities/function.objects/arithmetic.operations/plus.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/arithmetic.operations/plus.pass.cpp
@@ -19,7 +19,9 @@
 {
     typedef std::plus<int> F;
     const F f = F();
-    static_assert((std::is_base_of<std::binary_function<int, int, int>, F>::value), "");
+    static_assert((std::is_same<int, F::first_argument_type>::value), "" );
+    static_assert((std::is_same<int, F::second_argument_type>::value), "" );
+    static_assert((std::is_same<int, F::result_type>::value), "" );
     assert(f(3, 2) == 5);
 #if _LIBCPP_STD_VER > 11
     typedef std::plus<> F2;