Boost logo

Boost Users :

Subject: Re: [Boost-users] [Parameter] abstract base class
From: Noah Roberts (roberts.noah_at_[hidden])
Date: 2010-09-15 16:16:29


In article <4C911E60.70405_at_[hidden]>,
watanabesj_at_[hidden] says...
>
> AMDG
>
> Noah Roberts wrote:
> > I don't really understand why this is going on. Instead of just
calling
> > the base's constructor directly, the BOOST_PARAMETER_CONSTRUCTOR macro
> > creates a type resolution instantiation with this:
> >
> > boost::parameter::aux::unaryfunptr_arg_type< void(*)(B) >::type
> >
> > 'B' being the base class.
> >
> > This explodes if B is an abstract class. Both g++ 3.4.5 (mingw) and
> > VS2010 hate this line.
> >
> > Before I go about attempting to devise a workaround, what is the purpose
> > of this strange bit of code? Why not just use 'B' directly?? The type
> > resolution metafunction simply returns the 'B' place argument as its
> > type anyway...
> >
>
> This bit of code exists to strip the parentheses off (B).

Of course. OK. And the parens are needed for templated base classes.

Thanks.

-- 
http://crazyeddiecpp.blogspot.com/

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net