> On Jan 9, 2015, at 9:06 AM, David Blaikie <[email protected]> wrote:
>
>
>
> On Wed, Jan 7, 2015 at 12:31 PM, Marshall Clow <[email protected]
> <mailto:[email protected]>> wrote:
> Author: marshall
> Date: Wed Jan 7 14:31:06 2015
> New Revision: 225375
>
> URL: http://llvm.org/viewvc/llvm-project?rev=225375&view=rev
> <http://llvm.org/viewvc/llvm-project?rev=225375&view=rev>
> Log:
> 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.
>
> Are there any tests around to ensure the C++03 behavior remains in C++03? Or
> is that not worth worrying about/preserving/implementing?
The tests will continue to pass if the functors are derived from
binary_function (which is how libc++ implements them).
Other than that, no.
binary_function is an empty struct with three nested typedefs:
template <class Arg1, class Arg2, class Result>
struct binary_function
{
typedef Arg1 first_argument_type;
typedef Arg2 second_argument_type;
typedef Result result_type;
};
The tests (now) check for the existence (and correctness) of
first_argument_type, second_argument_type and result_type.
— Marshall
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits