|
Boost : |
From: Markus Werle (numerical.simulation_at_[hidden])
Date: 2008-03-10 11:32:29
Steven Watanabe <watanabesj <at> gmail.com> writes:
> Markus Werle wrote:
> [...]
> > OTOH the third template argument contains redundant information:
> > The docs say: "Proto expression nodes are valid Fusion random-access
> > sequences of their children nodes."
> > So the information about the number of arguments is accessible via
> > some size<T>::type metafunction e.g. depending on
> >
> > result_of::distance<result_of::begin<S>::type
> > result_of::end<S>::type>::type?
> >
> [...]
> I believe that it is needed to allow partial specialization.
> expr<Tag, Args, 0>, expr<Tag, Args, 1>, ...
Sorry if I do not get that one.
> And users don't need to care about it, since it has a default.
"User" is a very ambiguous word for proto.
Actually most "users" of proto will be "library writers"
seeking to boost (sic!) their productivity.
So even the nitty-gritty details matter.
I reject any "do-not-mind-it's-only-deep-inside" arguments
here. Everybody writing a compile time algorithm acting on
proto structures for whatever reason will be affected by this
"detail" and the implications might only become clear later,
when somebody is in need to do some compile-time-magic.
>From Daixtrose I know that the number of template arguments
can be reciprocal to readability, maintainability and extensibility.
Markus
>
> In Christ,
> Steven Watanabe
>
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
>
>
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk