
Doug Gregor <dgregor@cs.indiana.edu> writes:
On Jun 9, 2005, at 12:53 PM, Arkadiy Vertleyb wrote:
"David Abrahams" <dave@boost-consulting.com> 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 :-(
http://lists.boost.org/boost/2005/06/27892.php
"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