
Andy Little wrote:
"Jonathan Turkanis" <technews@kangaroologic.com> wrote in message news:cvvvpc$ipt$1@sea.gmane.org...
Andy Little wrote:
From what I have seen its very cool. :-)
Glad you like it !
How does this play with boost::result_of. Is there any potential to extend result_of by this?
result_of should already get the right answers for these types.
There's a different intention behind result_of (as it detects the result of a Functor concept, given that functor classes have a result_type member. This library, in contrast, is about working with function types (making it work on functors would be in some ways similar to making remove_pointer work on smart pointers). This library (once it is in stable state) could be used to implement result_of, I believe.
#include <iostream> #include "boost/utility/result_of.hpp" // v 1.32.0
// BTW following requires #include "boost/function_types/function_type_parameter.hpp" #include "boost/function_types/function_type_result.hpp"
Oh nice, another typo. Fixed, now - thanks for detecting ! ( this line: using function_types::function_type_parameter; should be: using function_types::function_type_result; in function_type_result.hpp )
[...code...]
Assumed the bug above is fixed, this code should compile: #include <boost/mpl/assert.hpp> #include <boost/type_traits/is_same.hpp> #include <boost/utility/result_of.hpp> #include <boost/function_types/function_type_result.hpp> typedef int (*f)(int); // result_of needs ref/ptr to function to work using namespace boost; BOOST_MPL_ASSERT((is_same< function_type_result<f>::type , result_of< f(int) >::type // see http://www.tinyurl.com/6a87k
));
Regards, Tobias