Make `& Class.foo` illegal
sarn
sarn at theartofmachinery.com
Fri Aug 28 00:25:15 UTC 2020
On Thursday, 27 August 2020 at 16:30:03 UTC, H. S. Teoh wrote:
> In C++, there's this construct called a member function
> pointer, which has its own special type and requires the caller
> to specify an object before the function can be called.
> Arguably, that's what D should be implementing.
I don't know if you've seen them before, but these two articles
explain the reasoning behind D not having member function
pointers:
https://www.drdobbs.com/cpp/member-function-pointers-in-d/231600610
https://www.codeproject.com/Articles/7150/Member-Function-Pointers-and-the-Fastest-Possible
tl;dr: C++ member function pointers are complicated when you get
into the details, and the sanest implementation is with thunks
that are equivalent to lambdas or delegates. Ironically, the
most common usage of member function pointers turned out to be
building complicated versions of lambdas and closures (at least
before C++ got them built in).
None of that says anything about syntax, but it's why D doesn't
have member function pointers, per se, like C++ does.
More information about the Digitalmars-d
mailing list