Compiler hints, inlining and syntax consistency

Ola Fosheim Grøstad" <ola.fosheim.grostad+dlang at gmail.com> Ola Fosheim Grøstad" <ola.fosheim.grostad+dlang at gmail.com>
Sat Dec 28 10:38:54 PST 2013


On Saturday, 28 December 2013 at 17:53:31 UTC, Chris Cain wrote:
> How is that significantly different than the current situation?

It is different in the sense that if your lengths are short you 
either have to write your own container or your own algorithm 
because the algorithm designer assumed that walkLength would be 
too slow in all cases? In the case of phobos you probably could 
just change the algorithm to use walkLength yourself and include 
it with your source. In a more complex framework it might be more 
difficult?

> FYI, if your thing defines length, then walkLength calls it. So 
> it's effectively as fast to use when your thing has length 
> defined, otherwise it suggests that you understand that a 
> relaxed constraint of O(N) is acceptable and will do that for 
> you if length doesn't exist.

Yes, but I still think that all containers should have length() 
regardless of efficiency because that is more intuitive, and then 
you might either provide properties that can be used to assess 
performance or define a lengthFast() for those algorithms that 
require O(1).


More information about the Digitalmars-d mailing list