|
Boost Users : |
From: Oleg V. Zhylin (ovz_at_[hidden])
Date: 2007-04-12 09:08:30
At least for VC7.1 compiler
int a, b;
cout<<typeid(sizeof(a)/(a - b)).name()<<endl;
prints "unsingned int" and issues no warnings about int -> size_t
conversion. Thus I still wonder if usage of int type in
> > int count = sizeof(t) / (
> > static_cast<const char *>(static_cast<const void
> *>(&t[1]))
dictated by consideration for some other C++ compiler. VC7.1 does issue
a warning
warning C4267: 'initializing' : conversion from 'size_t' to 'int',
possible loss of data
for that code. I would suggest to consider either change type of
variable count from int to size_t or disable C4267 for this piece of
code for MS compilers.
--- Ovanes Markarian <om_boost_at_[hidden]> wrote:
>
> On Wed, April 11, 2007 17:51, Oleg V. Zhylin wrote:
> > Hi,
> >
> > Is there a reason to use type int in the code at line 487 in
> > oserializer.hpp?
> >
> > int count = sizeof(t) / (
> > static_cast<const char *>(static_cast<const void
> *>(&t[1]))
> >
> > - static_cast<const char *>(static_cast<const void
> > *>(&t[0]))
> >
> > C++ standard draft states in section 5.3.3 [expr.sizeof]
> >
> > The result is a constant of an implementation-defined
> > type which is the same type as that which is named
> > size_t in the standard header <cstddef>(18.1).
>
>
> I assume otherwise you will get a warning, that a sign can be lost
> through the assignment. The
> problem here is that expression (type* - type*) results not in an
> unsigned type (size_t) but a
> signed difference type. If you divide unsigned value through a signed
> value you get a signed
> value. And then you would (according to your suggestion) assign it to
> an unsigned value =>
> warning.
>
>
>
> With Kind Regards,
>
> Ovanes Markarian
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
WBR Oleg V. Zhylin ovz_at_[hidden]
____________________________________________________________________________________
Finding fabulous fares is fun.
Let Yahoo! FareChase search your favorite travel sites to find flight and hotel bargains.
http://farechase.yahoo.com/promo-generic-14795097
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net