Setting defaults to variadic template args

luka8088 luka8088 at owave.net
Tue Oct 2 06:44:24 PDT 2012


module program;

import std.stdio;
import std.traits;
import std.typetuple;

struct Event (T...) {

   alias EraseAll!(void, TypeTuple!(T,
     Select!(T.length < 1, int, void),
     Select!(T.length < 2, float, void),
   )) T2;

   void F (T2 args) {
     writeln(typeid(typeof(args)));
   }

}

void main () {

   Event!() e1;

   e1.F(5, 6);

}


On Tuesday, 2 October 2012 at 13:15:08 UTC, Manu wrote:
> Is it possible?
>
> Eg:
>   struct Event(T... = (int, float))
>   {
>     void F(T...); // <- should default to F(int, float)
>   }
>
> Does anyone have any clever tricks that will work in this 
> scenario? Some
> magic tuple syntax?




More information about the Digitalmars-d mailing list