what is a usage pattern for "static" in an interface?
Jonathan M Davis
jmdavisProg at gmx.com
Sat Feb 4 13:59:09 PST 2012
On Saturday, February 04, 2012 10:45:05 Zach wrote:
> On Saturday, 4 February 2012 at 05:01:10 UTC, Marco Leise wrote:
> > Am 04.02.2012, 02:54 Uhr, schrieb Martin Nowak
> >
> > <dawg at dawgfoto.de>:
> >> If override were mandatory in implementation classes we could
> >> easily allow implementations
> >> in interfaces.
> >
> > Do you have a good example? Mine are currently all solvable
> > with final methods in interfaces, like
> >
> > interface ... {
> >
> > ...
> > @property size_t length();
> > @property final bool empty() { return length == 0; }
> >
> > }
>
> There exists std::list implementations in C++ where length is an
> O(n) operation, but empty could still be O(1).
That's why it's good practice to check whether something is empty rather than
that its length == 0. Containers can optimize empty when they can't
necessarily do the same with length. Often it doesn't matter, but in general,
checking for empty is better because of that.
- Jonathan M Davis
More information about the Digitalmars-d
mailing list