www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - How to tell between int[] and int[]... with introspection?

reply "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
Given these functions:

	int func1(string x, int[] y);
	int func2(string x, int[] y...);

Is there a way to tell, using compile-time introspection, the difference
between their signatures?

Using std.traits.Parameters shows both functions as having signature
(string, int[]).

typeof(&func2).stringof does show the `...` but I'd rather not rely on
parsing .stringof if at all possible.


T

-- 
Which is worse: ignorance or apathy? Who knows? Who cares? -- Erich Schubert
Feb 04
parent reply Ben Jones <fake fake.fake> writes:
On Thursday, 4 February 2021 at 17:18:27 UTC, H. S. Teoh wrote:
 Given these functions:

 	int func1(string x, int[] y);
 	int func2(string x, int[] y...);

 Is there a way to tell, using compile-time introspection, the 
 difference between their signatures?

 Using std.traits.Parameters shows both functions as having 
 signature
 (string, int[]).

 typeof(&func2).stringof does show the `...` but I'd rather not 
 rely on parsing .stringof if at all possible.


 T
Maybe this? https://dlang.org/phobos/std_traits.html#variadicFunctionStyle
Feb 04
parent Ben Jones <fake fake.fake> writes:
On Thursday, 4 February 2021 at 17:21:52 UTC, Ben Jones wrote:
 On Thursday, 4 February 2021 at 17:18:27 UTC, H. S. Teoh wrote:
 Given these functions:

 	int func1(string x, int[] y);
 	int func2(string x, int[] y...);

 Is there a way to tell, using compile-time introspection, the 
 difference between their signatures?

 Using std.traits.Parameters shows both functions as having 
 signature
 (string, int[]).

 typeof(&func2).stringof does show the `...` but I'd rather not 
 rely on parsing .stringof if at all possible.


 T
Maybe this? https://dlang.org/phobos/std_traits.html#variadicFunctionStyle
https://run.dlang.io/is/mcnPp9
Feb 04