On 2009-09-27 09:53:12 -0400, Andrei Alexandrescu <seewebsiteforem...@erdani.org> said:

Then your examples should have shown this instead.

Herb's article has them!

From what I read, Herb's article is focussing on making classes ABI
less fragile by removing virtual functions from public view and forcing users to call them behind a non-virtual functions. My take on this is that it's useful, but unintuitive.

There is one example where he separates a task into multiple virtual functions called apparently in sequence from non-virtual one. That's a fine concept, but putting this into something called "interface" seems dubious to me as it looks more like an implementation detail than an interface.

Still, having a way to write a default implementation for a function in an interface seems useful to me in some situations, but not in those illustrated the article you pointed to.


I fully support having a way to specify a default implementation for a function in an interface. It might get handy for a few things (like implementing the delegate pattern you see everywhere in Cocoa). But it's a bad replacement for contracts.

Walter has implemented contract inheritance, and we hope to be able to have contracts on interfaces in too. The former is a nice expected feature; the latter could convince DbC skeptics to start using it.

That's really great! :-)


--
Michel Fortin
michel.for...@michelf.com
http://michelf.com/

Reply via email to