On 8/19/2010 11:44 PM, Andrei Alexandrescu wrote:
On 08/19/2010 09:47 PM, Brad Roberts wrote:
On Thu, 19 Aug 2010, Andrei Alexandrescu wrote:

As I'm sure you know we're trying to help the matter with library-based
approaches, but leaving straight in the language a feature that is impossible
to make safe is not admissible. Walter and I agree that scope must be
abolished.

Cast and union can't be made safe either.. should they be removed?  Why
not push scope out of the safed subset and leave the tool around where
it's useful?

Cast and union must stay primitives because they can't be done in a library. I'd remove them if I could, but doing so would strictly reduce the language's power.

Andrei
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Well, if you have unions you could probably do casts in a library. I'm not saying we should do this, just that it's possible. For example:

U cast(T)(T ptr) if(isPointer!T && isPointer!U) {
    union U {
         T t;
         U u;
    }

    U myUnion;
    myUnion.t = ptr;
    return myUnion.u;
}
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to