[Tidbit] making your D code more modular & unittestable
Nick Treleaven via Digitalmars-d
digitalmars-d at puremagic.com
Fri Mar 10 06:58:09 PST 2017
On Thursday, 9 March 2017 at 20:54:23 UTC, Nick Sabalausky
(Abscissa) wrote:
> On 03/08/2017 04:34 PM, H. S. Teoh via Digitalmars-d wrote:
>> auto parseFile(Slice)(Slice input)
>> if (isRandomAccessRange!Slice && hasSlicing!Slice &&
>> is(ElementType!Slice : ubyte))
>> {
>> ... // use nice input[x .. y] syntax, yay!
>> return result;
>> }
>>
>
> Wishlist for D3: Some brilliant form of sugar for declaring a
> function that takes a range.
auto parseFile()(auto input if isRandomAccessRangeOf!ubyte &&
hasSlicing) {
My spin on an inline parameter constraint idea by Kenji (his
doesn't use auto and also has more concept-like sugar):
https://wiki.dlang.org/User:9rnsr/DIP:_Template_Parameter_Constraint
As mentioned in the link, inline constraints can help make more
specific error messages when constraints fail.
More information about the Digitalmars-d
mailing list