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

Reply via email to