[challenge] Bounded types

Denis Koroskin 2korden at gmail.com
Mon Oct 11 18:36:15 PDT 2010


On Tue, 12 Oct 2010 05:30:27 +0400, Philippe Sigaud  
<philippe.sigaud at gmail.com> wrote:

> 2010/10/11 Adam D. Ruppe <destructionator at gmail.com>:
>
>> For future direction, I don't think the Type argument is actually  
>> needed to the
>> Bounded struct. It could determine it from the bounds.
>>
>> So Bounded!(0, 255) it knows could be a ubyte, but Bounded!('A', 'Z')  
>> is a char.
>>
>> Maybe the type param can be moved to the end, as an optional parameter.  
>> In most
>> cases, it should be able to figure it out on its own.
>
>
> Good point. That'd make for cleaner code, but there are cases where
> you want to specify the underlying/implicit cast type, such as
> int/uint or int/short/byte.

That could be as simple as:

struct Bounded(A min, A max, T = A) { ... }

Bounded!(0, 1) zeroOrOne; 		// 4 bytes because of default int
Bounded!(0, 1, ubyte) zeroOrOne;  // 1 byte, specified explicitly


More information about the Digitalmars-d mailing list