Folding similar templates into one
Meta
jared771 at gmail.com
Fri Jun 28 15:28:37 PDT 2013
On Friday, 28 June 2013 at 13:20:47 UTC, monarch_dodra wrote:
> What is a "string lambda" ? Do you mean "a string alias latter
> parsed as an expression", or "an actual lambda function".
The former. I didn't think it was *that* obscure of a term
(https://www.google.com/search?q=%22string+lambda%22+site:forum.dlang.org).
> There were talks about this recently in learn: If you *type*
> the same lambda function twice, it *will* generate two
> different templates.
> http://forum.dlang.org/thread/rufkccowcdogctvckzar@forum.dlang.org
I'm not sure if that's due to this bug or not:
http://forum.dlang.org/thread/jdbhas$2ftb$1@digitalmars.com?page=2#post-jdcn98:241mg9:244:40digitalmars.com
> However,
>
> --------
> enum PRED = () => 1;
>
> struct S(alias pred){}
>
> void main()
> {
> auto a = S!PRED();
> auto b = S!PRED();
> a = b;
> }
> --------
> This is fine.
If that's all it takes to avoid copies, then maybe it's not so
big of a problem for lambdas.
> From testing, *string* preds don't have this "feature"/"bug"
> (?), even if you compile time build them, the compiler will
> "see" that it is the same string (probably true for integrals
> and whatnot). But for lambdas, only their *name* counts (eg
> __lambda1__). So if you plan to re-use a lambda, it *must* be
> stored in a way the compiler can "see" its unicity, and not
> typed more than once.
Ditto.
More information about the Digitalmars-d
mailing list