From: David Abrahams (dave_at_[hidden])
Date: 2005-06-09 13:43:03
Doug Gregor <dgregor_at_[hidden]> writes:
> On Jun 9, 2005, at 12:53 PM, Arkadiy Vertleyb wrote:
>> "David Abrahams" <dave_at_[hidden]> wrote
>>> template <class F, class A>
>>> struct result_of<F(A)>
>>> typedef typename BOOST_TYPEOF(make<F>() ( make<A>() ) ) type;
>> BTW, I was having (not typeof-related) problems trying to achieve
>> this kind
>> of syntax in VC7.1 :-(
>> "make<F>()(make<A>())" just doesn't work. The only thing that kind
>> of works
>> (but with a warning) is "F()(make<A>())".
>> Am I missing something?
> Should that be "make<F&>"?
Probably make<typename add_reference<F>::type>() Note "something like" above.
> For workarounds, we could also declare a static member of type F.
Yeah. Or maybe add more parens
( make<typename add_reference<F>::type>() )( make<A>() )
-- Dave Abrahams 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