Thread overview |
---|
April 29, 2008 [Issue 2058] New: Describe hidden value passed to class member functions | ||||
---|---|---|---|---|
| ||||
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). -- |
April 29, 2008 [Issue 2058] Describe hidden value passed to class member functions | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=2058 ------- Comment #1 from bugzilla@digitalmars.com 2008-04-29 15:00 ------- Passing in a member function is easy - they pass as delegate types, rather than function pointer types. -- |
May 01, 2008 [Issue 2058] Describe hidden value passed to class member functions | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=2058 ------- Comment #2 from jlquinn@us.ibm.com 2008-05-01 10:42 ------- 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 22, 2008 [Issue 2058] Describe hidden value passed to class member functions | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=2058 bugzilla@digitalmars.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #3 from bugzilla@digitalmars.com 2008-05-22 05:02 ------- Fixed dmd 1.030 and 2.014 -- |
Copyright © 1999-2021 by the D Language Foundation