On Wednesday, 3 February 2016 at 17:40:23 UTC, Meta wrote:
On Wednesday, 3 February 2016 at 17:12:03 UTC, xtreak wrote:
I was reporting a patch for the regression by removing the code that was causing the error. The bug was that map was not accepting multiple lambdas. It was suggested to check for void functions and lambdas. I couldn't find a function to check for return type in the std.traits. I tried the explicit for loop thus checking for the void functions as in the else case. I am D newbie it will be helpful in having the community help me in fixing the issue.

foreach(g, i; fun) {
  alias k = unaryFun!(fun[g]);
static assert(!is(AppliedReturnType!k == void), "Mapping function must not return void.");
}

Bug report : https://issues.dlang.org/show_bug.cgi?id=15480
Seems depends on : https://issues.dlang.org/show_bug.cgi?id=5710 Pull request : https://github.com/D-Programming-Language/phobos/pull/3963 Introduced as a part of https://github.com/D-Programming-Language/phobos/pull/1917

Unles I'm misunderstanding you, you can get the return type of a function by using std.traits.ReturnType:

void test() {}
static assert(is(ReturnType!test == void));

Thanks. I was trying to get the return type of lambdas. I was trying the following and got an error. I was using dpaste with dmd 2.070

writeln(ReturnType!(a =(a *a)))

Error: template instance f662.main.ReturnType!((a) => a * a) does not match template declaration ReturnType(func...) if (func.length == 1 && isCallable!func)

Reply via email to