www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 1120] New: old doc need updates: func sig changed to use anchored type

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1120

           Summary: old doc need updates: func sig changed to use anchored
                    type
           Product: D
           Version: unspecified
          Platform: PC
               URL: http://digitalmars.com/d/operatoroverloading.html
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: www.digitalmars.com
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: someanon yahoo.com


Great improvement by introducing anchored type! thanks Walter!

Please also update the doc, (I tried, it works)

old doc:

int opCmp(Object o);

should be changed to:

int opCmp(typeof(this) o);

By default opCmp(anchored typed) is called; if it doesn't exist, then
opCmp(Object o) is called.


Same for opEquals.


-- 
Apr 10 2007
next sibling parent Aarti_pl <aarti interia.pl> writes:
d-bugmail puremagic.com napisał(a):
 http://d.puremagic.com/issues/show_bug.cgi?id=1120
 
            Summary: old doc need updates: func sig changed to use anchored
                     type
            Product: D
            Version: unspecified
           Platform: PC
                URL: http://digitalmars.com/d/operatoroverloading.html
         OS/Version: Linux
             Status: NEW
           Severity: normal
           Priority: P2
          Component: www.digitalmars.com
         AssignedTo: bugzilla digitalmars.com
         ReportedBy: someanon yahoo.com
 
 
 Great improvement by introducing anchored type! thanks Walter!
 
 Please also update the doc, (I tried, it works)
 
 old doc:
 
 int opCmp(Object o);
 
 should be changed to:
 
 int opCmp(typeof(this) o);
 
 By default opCmp(anchored typed) is called; if it doesn't exist, then
 opCmp(Object o) is called.
 
 
 Same for opEquals.
 
 
"Nothing new under the sun" as says Book of Ecclesiastes. I didn't know that my proposition from thread "Covariance fix" (http://www.digitalmars.com/d/archives/digitalmars/D/Covariance_fix_was_Idea_Lazy_upcasting_51296.html) was already invented before and even has its name: "anchored types" :-) It seems that "anchored types" works, but not in full extent in D. My example still doesn't work (dmd 1.010): abstract class Storage { typeof(this) param1(int p1) { this.p1 = p1; return this; } private: int p1; } class SpecificStorage : Storage { public: typeof(this) param2(bool p2) { this.p2=p2; return this; } private: bool p2; } void main() { // ...ok... ...ok... ...ups! SpecificStorage s = (new SpecificStorage).param2(true).param1(5); } Implementing this will greatly simplify my program. :-)
Apr 11 2007
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1120


bugzilla digitalmars.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |INVALID





Unfortunately, it has to be (Object o) or the derived opCmp won't override the
base opCmp.


-- 
Jun 30 2007