
On 9/4/2012 12:00 PM, Mathias Gaunard wrote:
On 03/09/2012 09:08, Andrey Semashev wrote:
I realize that I can provide both result<> specializations and it will work either way. But when there are more than one argument the specializations begin to pile quickly. Consider also rvalue references and const and non-const qualified my_foo.
I have yet to find a good way to do this myself. It seems it is an issue that really needs some written best practices though, since a lot of libraries that define result appear to not to it vert well (sadly, even Phoenix is among them; it uses more specializations than necessary and simple things like result_of<F(int, int, int&)> are ill-formed).
I haven't looked at Phoenix yet (will do). However, my recent investigations with fusion::invoke reveal that the problems we see are not necessarily from misuse of result_of (bugs from flouting the result_of rules) as people summarily think. See my other post. Regards, -- Joel de Guzman http://www.boostpro.com http://boost-spirit.com