[GiNaC-devel] Fix the compliation error *for real*
Sergei Steshenko
sergstesh at yahoo.com
Sat Aug 8 14:04:59 CEST 2009
--- On Sat, 8/8/09, Alexei Sheplyakov <varg at metalica.kh.ua> wrote:
> From: Alexei Sheplyakov <varg at metalica.kh.ua>
> Subject: Re: [GiNaC-devel] Fix the compliation error *for real*
> To: "GiNaC development list" <ginac-devel at ginac.de>
> Date: Saturday, August 8, 2009, 1:45 AM
> Hello,
>
> On Fri, Aug 07, 2009 at 04:04:46PM -0700, Sergei Steshenko
> wrote:
> > Guys, I think a much more conceptually correct
> solution (even though this
> > one works) would be to use
> >
> > size_t
> >
> > instead of
> >
> > unsigned long
> > .
>
> The politically correct type is uintptr_t. And (AFAIK) the
> sizeof(size_t) is
> NOT guaranteed to be the same as sizeof(void*). And on any
> sane platform
> sizeof(long) == sizeof(void*) anyway.
>
> Best regards,
> Alexei
> _______________________________________________
Alexei, this is what
http://www.cplusplus.com/reference/clibrary/cstddef/size_t/
says:
"
size_t corresponds to the integral data type returned by the language operator sizeof and is defined in the <cstddef> header file (among others) as an unsigned integral type.
It expresses a size or count in bytes.
".
Please note that 'sizeof' argument is _not_ mentioned, and it makes sense.
My logic us that since size_t is is good for _any_ object, it is good
for any array A, including the array occupying the whole address space.
Here is the same interpretation:
http://www.viva64.com/terminology/size_t.html :
"
size_t. A basic unsigned integer C/C++ type. The type’s size is chosen in such a way as to allow you to write the maximum size of a theoretically possible array into it. On a 32-bit system size_t will take 32 bits and on a 64-bit one – 64 bits. In other words, a pointer can be safely put inside size_t type (an exception is class-function-pointers but this is a special case). size_t type is usually used for loop, array indexing, size storage and address arithmetic counters. In some cases using size_t type is more effective and safe than using a more habitual for the programmer unsigned type.
"
- please not the
"
In other words, a pointer can be safely put inside size_t type (an exception is class-function-pointers but this is a special case). size_t type is usually used for loop, array indexing, size storage and address arithmetic counters.
"
part.
Regards,
Sergei.
More information about the GiNaC-devel
mailing list