$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
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 )