Compiler hints, inlining and syntax consistency
Chris Cain
clcain at uncg.edu
Sat Dec 28 10:55:30 PST 2013
On Saturday, 28 December 2013 at 18:47:52 UTC, Chris Cain wrote:
> ...snip...
>
> 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.
I keep forgetting to use voldemort types, and in this case it
really makes sense:
import std.range;
auto assumeWalkLengthOK(T)(T thing)
if(isInputRange!T)
{
struct Result
{
T wrapped;
size_t length()
{
return wrapped.walkLength();
}
alias wrapped this;
}
return Result(thing);
}
Same usage,
`someGenericAlgorithm(assumeWalkLengthOK(myContainer));` (I
didn't actually run this through dmd, but it should work in
theory)
More information about the Digitalmars-d
mailing list