Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
March 15, 2016 [Issue 12230] methods do not bind templates via alias parameter | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=12230 --- Comment #3 from Kenji Hara <k.hara.pg@gmail.com> --- (In reply to Vladimir Panteleev from comment #0) > ///////////////////// test.d //////////////////// > import std.stdio; > > static template T(alias a) > { > void foo() { writeln(a); } > } > > struct S > { > int i = 1; > @property int p() { return 2; } > > alias ti = T!i; // OK > alias tp = T!p; // Error > } > ///////////////////////////////////////////////// > > The compiler rejects the above code, with the error: > test.d(5,23): Error: need 'this' for 'p' of type '@property int()' >From the long discussion in issue 11946, the static template T cannot get any context even if the aliased symbol a is an instance member. -- |
March 15, 2016 [Issue 12230] methods do not bind templates via alias parameter | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=12230 --- Comment #4 from Kenji Hara <k.hara.pg@gmail.com> --- (In reply to Kenji Hara from comment #3) > From the long discussion in issue 11946, the static template T cannot get any context even if the aliased symbol a is an instance member. Or... am I misunderstanding something? -- |
March 15, 2016 [Issue 12230] methods do not bind templates via alias parameter | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=12230 --- Comment #5 from Vladimir Panteleev <thecybershadow@gmail.com> --- Well, for one thing, there is the inconsistence - if fields bind context, why don't methods? In much broader terms, I really really wish we'd have explicit control over alias context binding, at the instantiation site. Template aliases can allow for some very powerful things with a few small tweaks. I've written a serialization framework with almost zero overhead which depends on the compiler patches I wrote: https://github.com/CyberShadow/ae/tree/master/utils/serialization However, the compiler patches were not accepted so this is mostly defunct. For personal use I'm still using a patched compiler with PR #3884 reverted. I realize this is hypocritical of me because I argued a lot in favor of that PR (as a fix to code breakage), however I have come to depend on the behavior that PR reverted in my allocators library. I would like to some day make a case for these small language improvements, but I feel like it would be more wasted work. I almost went mad just from attempting to implement __traits(child) correctly. -- |
May 24, 2020 [Issue 12230] methods do not bind templates via alias parameter | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=12230 Issue 12230 depends on issue 12285, which changed state. Issue 12285 Summary: Allow local symbols in alias parameter to non-static templates when both have same scope https://issues.dlang.org/show_bug.cgi?id=12285 What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |WORKSFORME -- |
December 17, 2022 [Issue 12230] methods do not bind templates via alias parameter | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=12230 Iain Buclaw <ibuclaw@gdcproject.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P2 |P3 -- |
Copyright © 1999-2021 by the D Language Foundation