Re: all functions that have a first arg of type T

2016-02-25 Thread Nicholas Wilson via Digitalmars-d-learn

On Friday, 26 February 2016 at 04:21:15 UTC, BBasile wrote:

On Friday, 26 February 2016 at 04:19:29 UTC, BBasile wrote:

static if (__traits(isStaticFunction,typeof(m2)))

static if (__traits(isStaticFunction, __traits(getMember, 
vulkan_input, m2


Sorry don't copy paste like this there's a superfluous right 
paren.


static if (__traits(isStaticFunction, __traits(getMember, 
vulkan_input, m2)))


thanks

Nic


Re: all functions that have a first arg of type T

2016-02-25 Thread BBasile via Digitalmars-d-learn

On Friday, 26 February 2016 at 04:19:29 UTC, BBasile wrote:

static if (__traits(isStaticFunction,typeof(m2)))

static if (__traits(isStaticFunction, __traits(getMember, 
vulkan_input, m2


Sorry don't copy paste like this there's a superfluous right 
paren.


static if (__traits(isStaticFunction, __traits(getMember, 
vulkan_input, m2)))





Re: all functions that have a first arg of type T

2016-02-25 Thread BBasile via Digitalmars-d-learn
On Friday, 26 February 2016 at 03:57:25 UTC, Nicholas Wilson 
wrote:

foreach(m; __traits(allMembers, vulkan_input))
{
static if (m.endsWith("_T"))
{
foreach(m2; __traits(allMembers, vulkan_input))
{
 static if 
(__traits(isStaticFunction,typeof(m2)))// <- what here?

 {
 enum fn = __traits(getMember,vulkan_input, m2);
 enum parameters = Parameters!(fn);
 static if (parameters[0] == m)
 writeln( m, ":",m2);
 }
}
}
}


static if (__traits(isStaticFunction,typeof(m2)))

static if (__traits(isStaticFunction, __traits(getMember, 
vulkan_input, m2




all functions that have a first arg of type T

2016-02-25 Thread Nicholas Wilson via Digitalmars-d-learn

foreach(m; __traits(allMembers, vulkan_input))
{
static if (m.endsWith("_T"))
{
foreach(m2; __traits(allMembers, vulkan_input))
{
 static if (__traits(isStaticFunction,typeof(m2)))// 
<- what here?

 {
 enum fn = __traits(getMember,vulkan_input, m2);
 enum parameters = Parameters!(fn);
 static if (parameters[0] == m)
 writeln( m, ":",m2);
 }
}
}
}
m2 is a string
I've tried mixin: gives me Error: function 
vulkan_input.VK_MAKE_VERSION (int major, int minor, int patch) is 
not callable using argument types ()

and various combos of typeof and mixin

typeof(m2) is an __error
typeof(mixin(m2)) " T is not an expression". fails for m2 == uint 
etc and m2 == module gives module had no type


Nic