My favourite game: DMD guess the error reason.

Steven Schveighoffer via Digitalmars-d digitalmars-d at puremagic.com
Mon May 2 12:14:59 PDT 2016


On 5/2/16 2:25 PM, Iain Buclaw wrote:
> On Monday, 2 May 2016 at 16:24:40 UTC, Steven Schveighoffer wrote:
>> On 5/2/16 3:13 AM, Iain Buclaw wrote:
>>> [2]: The ptrdiff_t and size_t types have a different size.
>>
>> Wow, it would be a copy-paste error of some sort? An interesting
>> possibility. But I'm going to say no, I don't see how this comes into
>> play for the template constraints.
>>
>
> While there may be an alias in object.d, I'd say it's purpose is purely
> cosmetic (and to prevent missing symbol errors).  It is the compiler
> that decides what types size_t, ptrdiff_t have.  And while there are
> targets where word and pointer sizes are different, GDC does not honour
> this however, as the D specification on these types (and D_LP64) trumps
> that.

So you are saying that:

int * p;
int[] arr;
assert(typeof(p - p).sizeof == typeof(arr.length).sizeof);

could fail regardless of how object.d defines size_t and ptrdiff_t? I 
can't imagine much would work. Interesting note though.

I've worked with processors that have different word and pointer sizes, 
but they were all too weak to be able to use D (if you used betterc 
switch maybe).

-Steve


More information about the Digitalmars-d mailing list