Compiler hints, inlining and syntax consistency
Chris Cain
clcain at uncg.edu
Sat Dec 28 09:53:30 PST 2013
On Saturday, 28 December 2013 at 17:23:38 UTC, Ola Fosheim
Grøstad wrote:
> What you want is a (mild) warning if you use a templated
> algorithm and that algorithm use a O(N) primitive where it is
> invisible to the library user. A warning you should be able to
> suppress (basically telling the compiler "trust me, this is
> deliberate").
How is that significantly different than the current situation?
If you use walkLength, then that's you telling the compiler
"trust me, this is deliberate". The only difference is that the
current behavior doesn't use a warning, it just errors out with
"this thing doesn't define a length", which is reasonable
behavior.
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.
More information about the Digitalmars-d
mailing list