
----- Mensaje original ----- De: David Abrahams <dave@boost-consulting.com> Fecha: Jueves, Julio 19, 2007 9:06 pm Asunto: Re: [Boost-users] [parameter] Parameter-Enabled Class Templates:combining keyword and deduction for the same parameter Para: boost-users@lists.boost.org
on Thu Jul 19 2007, Joaquín Mª López Muñoz <joaquin-AT-tid.es> wrote:
The docs explain that a parameter can be named:
typedef parameter::parameters< required<tag::threading_policy> ...
class_signature; ... class_<threading_policy<single_threaded>,...>;
or else be deduced:
typedef parameter::parameters< required< deduced<tag::threading_policy>, is_base_and_derived<threading_policy_marker,_> > ...
class_signature; ... class multithreaded: threading_policy_marker{...}; class_<multithreaded,...>;
Now, is it possible to combine these two options into one, so that the two syntaxes
class_<threading_policy<single_threaded>,...>; class_<multithreaded,...>;
are accepted? If so, how?
Just used deduced<tag::threading_policy>; deduced parameters can be deduced from argument types or from the names attached to named arguments.
Just to be sure: so, given the parameter specification required<deduced<tag::T>,F>, Boost.Parameter matches it to T<X> even if X does *not* satisfy F, correct? Thank you, Joaquín M López Muñoz Telefónica, Investigación y Desarrollo