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

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

Boost list run by bdawes at, gregod at, cpdaniel at, john at