Boost logo

Boost Users :

Subject: Re: [Boost-users] Serialization: C4308 warning with MSVC9
From: Political Confusion (politicalconfusion_at_[hidden])
Date: 2010-05-18 19:27:55


Political Confusion <politicalconfusion <at> yahoo.com> writes:

>
> I'm using Boost 1.43 with MSVC9 SP1 and Windows SDK v7 on Windows 7. I've
created a class like the "A Very
> Simple Case" example (i.e. added 'access' as friend and a templated serialize
function). In serialize, I
> just archive 10 ints (signed and unsigned). It compiles fine, but when I add
program code to save my class to
> a text_oarchive, I get a warning:
>
> c:\third-party\boost_1_43_0\boost\mpl\print.hpp(51) : warning C4308: negative
integral constant
> converted to unsigned type
>
> Line 51 of print.hpp is: enum { n = sizeof(T) + -1 };
>
> Calling sizeof() on my class gives a 44. I do not get any warning when I load
my class with text_iarchive. And
> both save and load appear to work fine.
>

I had to add the following to make this warning go away:

BOOST_CLASS_TRACKING( my_class, boost::serialization::track_never )


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