Boost logo

Boost :

From: Eric Niebler (eric_at_[hidden])
Date: 2006-10-30 15:48:38


(CC'ing Doug, who has the unfortunate distinction of having his name in
result_of.hpp.)

Has anybody else noticed inexplicable compile failures with MSVC 7.1,
and sometimes even MSVC 8.0, when using boost::result_of? It happens
with functors that have a nested result<> template, like

struct unary
{
     template<typename Sig> struct result;

     template<typename This, typename Arg>
     struct result<This(Arg)>
     {
         typedef void type;
     };
...
};

And when instantiating boost::result_of<unary(int)>::type, I'll
sometimes get an error like: "struct unary::result<F> is undefined, with
F=unary(int)." In some contexts, it seems, MSVC is unable to find the
correct partial specialization. The same code will compile fine with GCC.

I have yet to find a suitable work-around. As my work relies more and
more heavily on result_of, this has become a real pain point for me.

I can provide a repro to anybody interested, but it's large so I can't
post it here. I haven't found a simple repro yet.

-- 
Eric Niebler
Boost Consulting
www.boost-consulting.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk