On Sunday, 8 July 2018 at 19:10:24 UTC, Alex wrote:
On Sunday, 8 July 2018 at 18:46:31 UTC, vino.B wrote:
Request you help, in the below code we pass the function "Testfun" as a parameter to another function "process" in order for the function "process" to work we have to specify the type of the parameter that is passed to the function "(T function(string, int) coRoutine, string Test, int Size) ", so now how do we pass a function whose parameter would be dynamic and the type is unknown.

What do you mean with a "function with dynamic parameters" and "unknown type"?

But how about

´´´
void main()
{
        process!fun();
}

void process(alias coRoutine, T...)(T params)
{
        coRoutine(params);
}

auto fun(T...)(T params)
{

}
´´´

HI Alex,

I tried you method, but it not working as expected, the process!fun1(Test1) works but the process!fun2(Test1, Size ) does not work, instead of displaying the value (Test, 1) it output's the parameter "Test1".

Output:
Test
Test1

If I comment process!fun1(Test1); then the output is same

Output :
Test1

import std.stdio: writeln;


void main()
{
    string Test1 = "Test";
    int Size = 1;
    process!fun1(Test1);
    process!fun2(Test1, Size );
}

void process(alias coRoutine, T...)(T params)
{
        coRoutine(params);
}

auto fun1(T...)(T params)
{
   writeln(params);
}

auto fun2(T...)(T params)
{
   writeln(params);
}

From,
Vino.B

Reply via email to