digitalmars.D - Extracting function param types using variadic templates
- Jarrett Billingsley (17/17) Nov 03 2006 Hmm.
- Tom S (3/5) Nov 03 2006 How about this stuff:
- Jarrett Billingsley (11/16) Nov 03 2006 But that's basically using my third example, i.e.
- Kirk McDonald (7/28) Nov 03 2006 This was approximately the first thing I tried doing with variadic
- Walter Bright (3/5) Nov 03 2006 I agree, and I'll break out the hammer & tongs and see if I can make it
Hmm. I can do this: void variadic(T...)(T args){} variadic(1, 2, 3); This: void returnType(T)(T delegate() dg){} returnType(delegate int(){ return 0; }); Even this: void returnAndArg(T, U)(T delegate(U) dg){} returnAndArg(delegate int(bool b){ return 0; }); But not: void returnAndArgs(T, U...)(T delegate(U) dg){} returnAndArgs(delegate int(bool b){ return 0; }); ! One can dream, no? Is there maybe some other way to get at the parameter types of a function as a tuple, using variadic magic?
Nov 03 2006
Jarrett Billingsley wrote:Is there maybe some other way to get at the parameter types of a function as a tuple, using variadic magic?How about this stuff: http://www.dsource.org/projects/pyd/browser/trunk/infrastructure/meta ?
Nov 03 2006
"Tom S" <h3r3tic remove.mat.uni.torun.pl> wrote in message news:eigch3$ilf$1 digitaldaemon.com...Jarrett Billingsley wrote:But that's basically using my third example, i.e. void returnAndArg(T, U)(T delegate(U) dg){} returnAndArg(delegate int(bool b){ return 0; }); But with many specializations of the template, one for each number of params. The point of using variadic templates is removing the need to manually create a specialization for each number of things you want in the typelist. With the automatic tuple deduction that I wish existed, the FuncMeta.d module would become about 80 lines of code, and it would be able to support any number of arguments.Is there maybe some other way to get at the parameter types of a function as a tuple, using variadic magic?How about this stuff: http://www.dsource.org/projects/pyd/browser/trunk/infrastructure/meta ?
Nov 03 2006
Jarrett Billingsley wrote:"Tom S" <h3r3tic remove.mat.uni.torun.pl> wrote in message news:eigch3$ilf$1 digitaldaemon.com...This was approximately the first thing I tried doing with variadic templates. I was very saddened to see that it doesn't work. -- Kirk McDonald Pyd: Wrapping Python with D http://pyd.dsource.orgJarrett Billingsley wrote:But that's basically using my third example, i.e. void returnAndArg(T, U)(T delegate(U) dg){} returnAndArg(delegate int(bool b){ return 0; }); But with many specializations of the template, one for each number of params. The point of using variadic templates is removing the need to manually create a specialization for each number of things you want in the typelist. With the automatic tuple deduction that I wish existed, the FuncMeta.d module would become about 80 lines of code, and it would be able to support any number of arguments.Is there maybe some other way to get at the parameter types of a function as a tuple, using variadic magic?How about this stuff: http://www.dsource.org/projects/pyd/browser/trunk/infrastructure/meta ?
Nov 03 2006
Kirk McDonald wrote:This was approximately the first thing I tried doing with variadic templates. I was very saddened to see that it doesn't work.I agree, and I'll break out the hammer & tongs and see if I can make it work.
Nov 03 2006