$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Miro Jurisic (macdev_at_[hidden])
Date: 2004-04-18 12:54:08
In article <20040418160047.656883147E_at_[hidden]>,
 "Robert Ramey" <ramey_at_[hidden]> wrote:
> Miro Jurisic wrote:
> 
> > I am trying to play with Serialization #18 on CodeWarrior 9, and I ran 
> > into the following problems:
> 
> > mbstate_t is not in the global namespace when using CW9 and MW STL 
> > (I didn't test with gcc STL). This caused compile errors in 
> > archive/codecvt_null.hpp. I altered the workaround already present for 
> > Borland, but I believe this is the wrong answer, because it puts a using
> > declaration in a header file.
> 
> We're open to suggestions.
namespace detail {
#if BOOST_WORKAROUND...
   typedef ::mbstate_t mbstate_t;
#else 
   typedef std::mbstate_t mbstate_t;
#endif
}
and then use detail::mbstate_t inside the affected boost header files. This will 
make the boost files compatible with each other, and users of those headers will 
be able to use whichever one of ::mbstate_t or std::mbstate_t their compiler 
provides.
> > Error   : object 
> > 'boost::archive::text_oarchive_impl<boost::archive::text_oarchive>
> >	::text_oarchive_impl `base constructor'(std::basic_ostream<char,
> >		std::char_traits<char>> &, unsigned int)' redefined
> 
> 
> This looks like a compiler issue in getting bool/int confused. Try 
> Changing 
> 
>         basic_text_oprimitive<std::ostream>(
>             os, 
>             0 != (flags & no_codecvt)
>         )
> At around line 63 in file text_oarchive.hpp to
> 
>         basic_text_oprimitive<std::ostream>(
>             os, 
>             static_cast<bool>(0 != (flags & no_codecvt))
>         ) 
That wasn't it. (And I am not sure what it is, as the error looks entirely bogus)
meeroh
-- If this message helped you, consider buying an item from my wish list: <http://web.meeroh.org/wishlist>