get parameters of a function
    Stanislav Blinov via Digitalmars-d-learn 
    digitalmars-d-learn at puremagic.com
       
    Fri Apr 28 22:58:35 PDT 2017
    
    
  
On Friday, 28 April 2017 at 20:43:50 UTC, Alex wrote:
> Hi all,
> I have a question about the Parameters trait from
> https://dlang.org/phobos/std_traits.html#Parameters
>
> The following code does not compile. Why?
> Is it mainly assumed to use it with functions without overloads?
Rather, it is to be used on a concrete overload.
If you want to check if two structs are callable with the same 
parameters, you'll need to iterate opCall overloads for both and 
look for a match, e.g. like this:
void main()
{
     foreach(o1; __traits(getOverloads, S1, "opCall"))
     {
         alias P1 = Parameters!o1;
         foreach(o2; __traits(getOverloads, S2, "opCall"))
         {
             alias P2 = Parameters!o2;
             static if (is(P1 == P2))
             {
                 pragma(msg, "Matching params: "~P1.stringof);
             }
         }
     }
}
    
    
More information about the Digitalmars-d-learn
mailing list