On Tue, Jul 14, 2009 at 12:42 PM, Andrei Alexandrescu<seewebsiteforem...@erdani.org> wrote:
>> - opImplicitCast > > I think alias this should render that unnecesary. 'alias this' might cover a lot of cases, but this is the pretty big one that I can think of: consider a Bigint or the like. You might want to use such a type transparently in place of any other integer type, i.e. as an array index. Something like "a[bi.toSizet()]" looks pretty awful. But 'alias this' couldn't work in this case, because the underlying representation is *not* an integer. It's probably an array or somesuch. opImplicitCast would allow you to transparently use a Bigint in place of a normal int while still letting you represent the data any way you want (and letting you check the validity of the cast at runtime). Basically any type which represents its data as something other than what you want to implicitly cast to would have the same problem.