On Saturday, 28 December 2013 at 18:38:55 UTC, Ola Fosheim
Grøstad wrote:
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?
struct LengthWrapper(T) {
T wrapped;
size_t length() @property {
return wrapped.walkLength();
}
alias wrapped this;
}
LengthWrapper!T assumeWalkLengthOK(T)(T thing) {
return LengthWrapper!T(thing);
}
There you go. Use it like:
```
someGenericAlgorithm(assumeWalkLengthOK(myContainer));
```
Squelches the error message and documents the intent. Could be
better, but it saves us writing a language feature for it.