http://d.puremagic.com/issues/show_bug.cgi?id=8338
--- Comment #4 from Kenji Hara <k.hara...@gmail.com> 2012-07-02 21:01:13 PDT --- (In reply to comment #3) > Maybe. But I'm not completely convinced that it would break all that much code > - particularly since I would have expected any code using Unqual to be written > with the intention of stripping _all_ of the qualifiers (as the documentation > says). But, getting type stripped full qualifiers is much unsafe than just top. const string s = "Hello"; // const(immutable(char)[]) auto mutable_s = cast(Unqual!(typeof(s)))s; // ??? In many cases, current Unqual is used with unsafe casting, even if it is bad idiom. Changing the implementation of Unqual will become such codes *more* unsafe silently. (As far as I know, Phobos doesn't have such bad using. I'm talking about the user codes written by programmers don't know well about const/immutable type system.) And in (sadly) few cases that uses Unqual correct way, it will change codes from safe to unsafe. Stripping top qualifier of array/string types: https://github.com/D-Programming-Language/phobos/blob/master/std/format.d#L1634 https://github.com/D-Programming-Language/phobos/blob/master/std/format.d#L1705 > If we don't make the change though, we need a new template similar to > Unqual (FullUnqual? RecUnqual?) which really _does_ strip all of the > qualifiers. Noqual? Or, add new two templates, one removes just top qualifier, another does all qualifiers. I think this is the best way, but have no idea about their names... -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------