Boost logo

Boost Users :

From: Ovanes Markarian (om_boost_at_[hidden])
Date: 2008-05-01 07:58:21


Hicham,

as far as I understand your code you pass to result_of a new type:
typedef typename boost::result_of<floatfct(float, float)>::type resultype;

This type is a pointer to a function type, which has as return type a
pointer to floatfct and as params float, float.
That's why it compiles.

Regards,
Ovanes

On Thu, May 1, 2008 at 1:25 PM, Hicham Mouline <hicham_at_[hidden]> wrote:

> Hello,
> trying out Pete Becker's "c++ std lib ext" exercises,
> ex1 p155
>
> #include <iostream>
> #include <typeinfo>
> #include <boost/utility/result_of.hpp>
>
> typedef float (*floatfct)(float);
> int main(int argc, char* argv[])
> {
> typedef typename boost::result_of<floatfct(float, float)>::type
> resultype;
> std::cout<< typeid(resultype).name() << std::endl;
> }
>
> should fail, because result_of is instantiated with a callable type with 2
> float args,
> while it's been defined as taking 1 float arg only?
>
> with intel10.1-MSVC8-boost1.35, it links.
>
> rds,
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net