|
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