How does D improve design practices over C++?
Jarrett Billingsley
jarrett.billingsley at gmail.com
Thu Nov 6 20:43:06 PST 2008
On Thu, Nov 6, 2008 at 11:32 PM, Bill Baxter <wbaxter at gmail.com> wrote:
>> C++ is a huge language, and not many know the entire language. Case in
>> point, you didn't know what Delegates where yet many C++ programmers use
>> them frequently. Its better if the language makes it easy rather then
>> requiring the programmer to do something to be correct. Just like expecting
>> an email program to have spell check your emails. Modern languages should
>> do the same.
>
> C++ doesn't have "delegates". It has member function pointers. I
> don't think that's changed. boost::bind (now std::tr1::bind in some
> places) gives you a way to bundle a member function pointer with an
> object pointer in a delegate-like way, but I don't think anybody calls
> those delegates. At least they didn't used to.
>
> I don't know who came up with the word "delegate" but I find it to be
> a terrible match for what they actually are.
> - "one appointed or elected to represent others"?
> It's a kind of a stretch. [/rant]
I don't know if C# had them first or what, but the name.. fits
somewhat better there. C#'s delegates are something like D's
delegates combined with a signals and slots implementation. So you
can think of a delegate as not being a method itself, but rather a
representative to all the objects+methods that have subscribed to it.
It's still not really a good fit ;) But you make do with what you
have.
More information about the Digitalmars-d
mailing list