Boost logo

Boost :

From: Nicola Musatti (Nicola.Musatti_at_[hidden])
Date: 2006-05-10 05:01:06


Robert,
I think I found the problem, but I'm not sure on how to code a
workaround. Apparently BCB2006 introduced a bug which causes writes to a
  BOOST_STRONG_TYPEDEF to fail, just as if a temporary was updated. This
is affecting specifically the reading of archive versions.

The code below is an example of an effective workaround:

     version_type input_library_version;
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) &&
__BORLANDC__ >= 0x580
     unsigned int v;
     * this->This() >> v;
     input_library_version.t = v;
#else
     * this->This() >> input_library_version;
#endif

Probably it would be sufficient to just pass input_library_version.t to
operator>> .

The real problem I have with this workaround is that it would be much
better to factor it into BOOST_STRONG_TYPEDEF's definition, but I'm not
sure about what is exactly causing the problem and I'm not very
confident about my ability to add conditions to a macro definition.

Cheers,
Nicola Musatti


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk