|
Boost : |
From: David A. Greene (greened_at_[hidden])
Date: 2002-08-07 15:30:46
Paul Mensonides wrote:
> There are several ways to maintain an interface while changing arities.
>
> template<int> struct some_class;
>
> template<> struct some_class<1> {
> template<class T> struct args {
> // ...
> };
> };
>
> template<> struct some_class<2> {
> template<class T, class U> struct args {
> // ...
> };
> };
Erk...this strikes me as a bit ugly. Doesn't the interface for
some_class have to be re-declared in each specialization?
I don't see how this provides any decoupling. I'm missing
something important here.
> You can also extract parameter types from a function type, etc..
I don't follow you here.
>>In any event, I've seen calls in various places (c.l.c++.m
>>and here, I think) for variable-length template parameter
>>lists. What are those good for? Typelists seem to provide
>>the same functionality. Well, in the same way std::vector
>>provides variable-length function argument lists. :)
>
> Typelists only supply the same functionality for types. They don't extend to
> other variable-length arities such as parameter lists.
Sure. I guess I don't understand how variable-length template
parameter lists would be used, then. I'm missing a piece of
the puzzle.
-Dave
-- "Some little people have music in them, but Fats, he was all music, and you know how big he was." -- James P. Johnson
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk