On Monday, 25 August 2014 at 21:14:42 UTC, Ali Çehreli wrote:
On 08/25/2014 12:17 PM, "Marc Schütz" <schue...@gmx.net>" wrote:
On Monday, 25 August 2014 at 19:12:48 UTC, Marc Schütz wrote:
On Monday, 25 August 2014 at 18:44:36 UTC, Ali Çehreli wrote:
It can be explained if the mixed-in template is evaluated at
the
mixin context without bringing in the imported modules to
that
context. I don't know whether it is true or whether it is a
known
limitation.
You're right, that's it! It works when I import std.traits
first.
So... the fix is to import std.traits inside template Proxy.
Going to
submit a PR.
https://github.com/D-Programming-Language/phobos/pull/2463
Thanks! And I learned from you in the pull request the
following fact:
<quote>
Quoting http://dlang.org/template-mixin :
"Unlike a template instantiation, a template mixin's body is
evaluated within the scope where the mixin appears, not where
the template declaration is defined. It is analogous to cutting
and pasting the body of the template into the location of the
mixin."
</quote>
Ali
With that in mind what is strange is that if in my example you
change the class for a struct everything works as expected. Why
is that?