Why can't templates use tuples for for argument types?

James Dennett jdennett at acm.org
Tue Jul 17 23:16:38 PDT 2007

Don Clugston wrote:
> BCS wrote:
>> |template Types(A...)
>> |{
>> |  template Values(A a)
>> |  {
>> |  }
>> |}
>> |
>> |alias Types!(int, bool, int[]).Values!(1,true,[1,2,3]) bob;
> int [] is not an allowed as a template value parameter. Only char[],
> wchar[], dchar[], integers, and floating-point types can be template
> value parameters.
> (In C++, only integers are allowed).

Not true of C++.  Pointers to objects with external linkage
are also allowed (even if we assume "integers" includes
booleans and values of enumeration types).

(Allowing floating point types used to be a common extension
in C++ but was removed after experience with it.)

-- James

More information about the Digitalmars-d-learn mailing list