On Saturday, 20 September 2014 at 17:20:28 UTC, Andrei
Alexandrescu wrote:
On 9/20/14, 9:32 AM, ketmar via Digitalmars-d wrote:
On Sat, 20 Sep 2014 08:25:17 -0700
Andrei Alexandrescu via Digitalmars-d
<digitalmars-d@puremagic.com>
wrote:
I think this is an entirely palatable idiom:
alias ALfloat = std.typecons.Typedef!(float, "ALfloat");
this is ugly.
But not unusable.
Requiring manual tracing of identity = unusable. With my proposed
implementation it is at least clear when it is going to fail.
This is much worse:
module a;
alias Int1 = Typedef!(int, "MyInt");
module b;
alias Int2 = Typedef!(int, "MyInt");
// oh I didn't know someone else used that cookie too..
static assert (is(Int1 == Int2));
Such solution simply can't be allowed in any project with >1
active programmer unless either type safety is not important or
some additional restrictions on adding new typedefs are added
process-wise (insane).