typeof map
monarch_dodra
monarchdodra at gmail.com
Mon Jun 24 23:58:32 PDT 2013
On Tuesday, 25 June 2013 at 04:26:00 UTC, Timothee Cour wrote:
> I think it's because each lambda litteral is treated unique.
> can dmd be changed to recognize identical lambda litterals as
> identical? Is
> there any particular issue making that difficult?
> it already recognizes identical string literals as identical
I could be wrong, but the difference might be that it *can*
recognize string literals as idential, but it doesn't actually
guarantee it as spec. This is not an issue for strings, but...
Imagine I have a module, where I declare "alias T = R!some_labda".
Then in another module, I declare "alias U = R!some_labda".
Then in a third module, would I be able to declare a T, and store
it inside a U ? Would the compiler be able to see that both
lambdas are actually the same? I honestly don't know.
But it seems dangerous to me: Lambdas specifically don't have
names, and are unique. If you type two of them that have the same
body, that shouldn't mean they are actually the same.
Also, doing this would create symbol collisions, where a user has
defined two different lambdas, that have the same body, but
expected different definitions. EG:
alias T = R!some_lambda;
alias U = R!some_same_lambda"
void foo(T t);
void foo(U u); //Nope, foo(U) already declared; What?
More information about the Digitalmars-d-learn
mailing list