
Peter Dimov wrote:
The only reason for test_function_tricky.cpp to not compile with boost::function is the presence of the following two lines:
BOOST_STATIC_ASSERT((::boost::is_base_and_derived<std::unary_function<int, long>, std::tr1::function<long (int)> >::value));
BOOST_STATIC_ASSERT((::boost::is_base_and_derived<std::binary_function<int, char, double>, std::tr1::function<double (int,char)> >::value));
that check for the (highly questionable and not particularly relevant) requrement that function<> should derive from unary_function or binary_function in some cases.
Questionable maybe, but none the less part of the TR1.
I think that these two lines need to be moved to a separate test.
The only difference between this test and the "non-tricky" one is the presence of those two lines. The test is intentionally pedantic. John.