|
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