Simplifying conversion and formatting code in Phobos
Walter Bright via Digitalmars-d
digitalmars-d at puremagic.com
Thu Sep 8 16:34:13 PDT 2016
On 9/8/2016 5:10 AM, Andrei Alexandrescu wrote:
>> Consider the pattern of overloads:
>>
>> template foo(T) if (condition!T) { }
>> template foo(T) if (!condition!T) { }
>>
>> It makes condition!T a user-facing constraint, which it should not be.
>
> This looks like a nice guideline. Good work. Pushing the roof now. -- Andrei
An example of doing it better, the put() template:
https://github.com/dlang/phobos/blob/master/std/range/primitives.d#L295
Something we need to move away from, the 17 overloads of formatValue() in:
https://github.com/dlang/phobos/blob/master/std/format.d#L1319
all that differ only in the constraint.
More information about the Digitalmars-d
mailing list