digitalmars.D.bugs - [Issue 2347] New: opIs is missing
- d-bugmail puremagic.com (17/17) Sep 07 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2347
- d-bugmail puremagic.com (12/12) Sep 09 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2347
- d-bugmail puremagic.com (9/9) Sep 10 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2347
- d-bugmail puremagic.com (9/11) Sep 10 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2347
http://d.puremagic.com/issues/show_bug.cgi?id=2347 Summary: opIs is missing Product: D Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: enhancement Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: andrei metalanguage.com The "is" operator is defined for built-in references and for slices. However, user-defined smart references and slices want to define it as well to integrate properly with built-in slices. The definition of opIs should follow that of opIn. --
Sep 07 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2347 smjg iname.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |smjg iname.com I think that having opIs is philosophically wrong. The whole point of is is to override any type-defined equality operator by forcing a byte-for-byte comparison. There are probably plenty of template libraries and the like that rely on this. What are these "user-defined smart references", anyway? --
Sep 09 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2347 An example of "user-defined smart references" would be a ScopePtr!(T) that destroys an object when it goes out of the scope. Some reference-counted smart pointer also behaves just like an ordinary point and one would like to be able to compare SmartPtr against null using "is null" syntax: auto ptr = SmartPtr!(MyClass)(new MyClass()); assert(ptr !is null); --
Sep 10 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2347auto ptr = SmartPtr!(MyClass)(new MyClass()); assert(ptr !is null);Hang on ... is this a smart _pointer_ or a smart _reference_? If a pointer, it makes no sense to use is to compare them as pointing to the same object. And even if it's a reference, what practical use is there in being able to use is for this? ISTM it would break more generic programming cases than it would open up. --
Sep 10 2008