digitalmars.D.bugs - [Issue 2058] New: Describe hidden value passed to class member functions
- d-bugmail puremagic.com (25/25) Apr 29 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2058
- d-bugmail puremagic.com (5/5) Apr 29 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2058
- d-bugmail puremagic.com (11/11) May 01 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2058
- d-bugmail puremagic.com (9/9) May 22 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2058
http://d.puremagic.com/issues/show_bug.cgi?id=2058 Summary: Describe hidden value passed to class member functions Product: D Version: 2.012 Platform: PC URL: http://www.digitalmars.com/d/2.0/class.html OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: www.digitalmars.com AssignedTo: bugzilla digitalmars.com ReportedBy: jlquinn us.ibm.com As in C++, D appears to implicitly pass a reference to the class instance into a call to a member function to support references to class member vars and "this". The fact that a hidden var is passed in is documented in reference to nested classes, but not for basic member functions. This behavior is likely well known to experienced c++ developers, but needs to be documented in a language spec. I ran into this trying to pass a class member function into std.algorithm.lowerBound, which of course doesn't work because of the hidden class reference. (There needs to be a way to pass a member function in easily - subject for another bug). --
Apr 29 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2058 Passing in a member function is easy - they pass as delegate types, rather than function pointer types. --
Apr 29 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2058 I eventually figured out how to use a delegate here. I had been working too hard at it. At this point, I'm thinking the issue is that lowerBound is specified with "alias less", which doesn't really tell a newbie what is really safe to pass in. Some more detailed docs with basic examples would help, both using standalone functions, and delegates. This is really more a meta issue for stuff in algorithms and other places that can take function references of various forms. --
May 01 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2058 bugzilla digitalmars.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Fixed dmd 1.030 and 2.014 --
May 22 2008