64Bit compatibility warnings

Stewart Gordon smjg_1998 at yahoo.com
Sat Jan 21 05:01:16 PST 2012


On 21/01/2012 11:43, Peter Alexander wrote:
<snip>
> size_t is defined in druntime as an alias to uint/ulong.

In C++ too, size_t is defined in the standard library.

> The compiler is unaware of any special status that it may have.

The whole point of what I'm saying is that it doesn't need to be.

writefln is a library function.  But DMD recognises it specially, so that it can give 
"perhaps you need to import std.stdio;" if you try using it.

In the same way, it could recognise size_t/ptrdiff_t specially, by treating them 
internally as strong types even if they aren't - so that if you try to use one as a 
uint/int, it will give a warning.  Just like the M$ C++ compiler does.

OK, so it's simpler if size_t and ptrdiff_t are changed to built-in types, but my point is 
that it's not strictly necessary.

 From what I gather, some C++ compilers do more than this: they have a built-in 
understanding of the STL types, which they can use to optimise operations on them better 
than can be done in the code implementations of them.

Stewart.


More information about the Digitalmars-d mailing list