At 16:48 2003-02-01 -0500, you wrote:
> What do you mean by "a single framework could be used to handle both approaches"?

I mean a library which would allow you to extract optional types
parameters based on either their wrapper templates ("Color_is<...>")
or on a predicate (e.g. pick the one for which is_class<T>::value is
true).
Perhaps this can be done with the interface for
parameter extraction i posted earlier.. Something like:

template <typename T> struct Model_is;
template <typename T> struct Color_is;
template <typename T> struct Seats_is;
template <typename T> struct Transmission_is;

template <class Model = unspecified,
class Color = unspecified,
class Seats = unspecified,
class Transmission = unspecified>
class car {

typedef extract_policies<
mpl::vector4<Model, Color, Seats, Transmission>
, mpl::vector4<
named_parameter<Model_is>
, named_parameter<Color_is>
, named_parameter<Seats_is>
, named_parameter<Transmission_is>
>
, mpl::vector4<
Model_is<gl>, Color_is<red>, Seats_is<leather>, Transmission_is<automatic>
>
> policies_t;

typedef typename policies_t::policy0 model;
typedef typename policies_t::policy1 color;
typedef typename policies_t::policy2 seats;
typedef typename policies_t::policy3 transmission;

};

Where named_parameter<...> is sugar for is_same_tt<Model_is<void>, _1>
(from Jonathan's code). Obviously 'extract_policy' would be the wrong
name for this.. 'extract_parameters' would be more appropriate.


Daniel Wallin, [EMAIL PROTECTED]

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Reply via email to