
David Abrahams wrote:
João Abecasis <jpabecasis@gmail.com> writes:
1 - support for function pointers was completely broken. Specifically, I learned that result_of doesn't handle cv-qualified function pointers.
Shouldn't we fix result_of?
I think so. I posted about the issues I found with result_of and is_pointer separately.
2 - Random Access Sequences were required when Forward Sequences would have been sufficient. Here I failed to grasp the Fusion Concepts while porting unpack_args from Fusion v1.
3 - Function references weren't handled at all.
A result_of problem, or something else?
In this case, something else, in my naive implementation I thought everything would be solved with a simple: typedef result_of<F(A0, ..., AN)>::type result_type; But it turns out that if F is a function the compiler will complain that we're trying to write a function returning a function. In the end, what I did, specifically for this case, was to add a pointer to the function type. Here I also found an issue with cv-qualified functions (if they do exist...) and is_function. This one seems to be gcc-4.x specific. Best regards, João