digitalmars.D.learn - Non-global template cannot use local lambda
- =?UTF-8?B?QWxpIMOHZWhyZWxp?= (19/19) Jul 22 2012 I can't see why the following limitation:
- Jonathan M Davis (4/22) Jul 22 2012 I'd say that it's a bug . If it's not, it definitely should be an enha=
- =?UTF-8?B?QWxpIMOHZWhyZWxp?= (10/31) Jul 22 2012 Thanks and sorry for the noise. I should have checked bugzilla first:
I can't see why the following limitation:
class C
{
void foo(alias Func)()
{}
}
void main()
{
auto c = new C();
c.foo!(x => x)(); // <-- Compilation error
}
Error: template instance foo!(__lambda2) cannot use local
'__lambda2(__T1)' as parameter to non-global template foo(alias Func)
Is this a bug?
I've noticed this problem in some of my online examples. The following
line doesn't work with 2.059, where map() below is
std.parallelism.TaskPool.map():
auto results = map!(a => a.averageGrade)(students);
Ali
Jul 22 2012
On Sunday, July 22, 2012 17:40:36 Ali =C3=87ehreli wrote:I can't see why the following limitation: =20 class C { void foo(alias Func)() {} } =20 void main() { auto c =3D new C(); c.foo!(x =3D> x)(); // <-- Compilation error } =20 Error: template instance foo!(__lambda2) cannot use local '__lambda2(__T1)' as parameter to non-global template foo(alias Func)==20 Is this a bug?I'd say that it's a bug . If it's not, it definitely should be an enha= ncement. - Jonathan M Davis
Jul 22 2012
On 07/22/2012 06:08 PM, Jonathan M Davis wrote:On Sunday, July 22, 2012 17:40:36 Ali Çehreli wrote:enhancement.I can't see why the following limitation: class C { void foo(alias Func)() {} } void main() { auto c = new C(); c.foo!(x => x)(); //<-- Compilation error } Error: template instance foo!(__lambda2) cannot use local '__lambda2(__T1)' as parameter to non-global template foo(alias Func) Is this a bug?I'd say that it's a bug . If it's not, it definitely should be an- Jonathan M DavisThanks and sorry for the noise. I should have checked bugzilla first: http://d.puremagic.com/issues/show_bug.cgi?id=3051 http://d.puremagic.com/issues/show_bug.cgi?id=3052 This one is opened by David Simcha when implementing std.parallelism: http://d.puremagic.com/issues/show_bug.cgi?id=5710 Then I guess my examples used to work due to dmd bugs that must have gotten fixed during the short lambda syntax implementation. Ali
Jul 22 2012








=?UTF-8?B?QWxpIMOHZWhyZWxp?= <acehreli yahoo.com>