digitalmars.D.learn - When to use typecons.proxy vs alias this?
- weaselcat (5/5) Jan 24 2015 I can't find much documentation/usage of typecons.proxy, but it
- Adam D. Ruppe (10/10) Jan 24 2015 Use alias this if you want implicit conversions too.
- weaselcat (3/14) Jan 24 2015 So the only difference is that proxy doesn't have implicit
- Adam D. Ruppe (4/6) Jan 25 2015 I don't think it is the *only* difference - the implementations
I can't find much documentation/usage of typecons.proxy, but it seems extremely similar to alias this. The documentation page( http://dlang.org/library/std/typecons/proxy.html ) doesn't really seem to elaborate on this at all.
Jan 24 2015
Use alias this if you want implicit conversions too. Proxy keeps the types separate void foo(Base b) { } struct Modified { Base b; alias b this; } foo(Modified()); //works That wouldn't work if it was proxied though, which you sometimes want to force everything to go through your modification.
Jan 24 2015
On Sunday, 25 January 2015 at 03:55:18 UTC, Adam D. Ruppe wrote:Use alias this if you want implicit conversions too. Proxy keeps the types separate void foo(Base b) { } struct Modified { Base b; alias b this; } foo(Modified()); //works That wouldn't work if it was proxied though, which you sometimes want to force everything to go through your modification.So the only difference is that proxy doesn't have implicit conversions? Hm. Might be worth pointing out on the docs.
Jan 24 2015
On Sunday, 25 January 2015 at 05:57:37 UTC, weaselcat wrote:So the only difference is that proxy doesn't have implicit conversions? Hm. Might be worth pointing out on the docs.I don't think it is the *only* difference - the implementations are very different - but I do think it is the most significant one.
Jan 25 2015