
Hmmm, before I paste this in, I'm wondering a little. shared_ptr_132.hpp is different from shared_ptr.hpp in version 1.32 in that it uses a null deleter. Its not clear to me that this change doesn't nullify this feature. This feature is key to being able to recover 1.32 pointers and convert them to the new setup. Robert Ramey AlisdairM wrote:
The following patches compile for bcc 0x564 - I don't have a version of the library built to link against to verify the run time nature of the test.
cvs diff -w shared_ptr_132.hpp (in directory D:\Projects\boost\boost\serialization\detail) Index: shared_ptr_132.hpp =================================================================== RCS file: /cvsroot/boost/boost/boost/serialization/detail/shared_ptr_132.hpp,v retrieving revision 1.2 diff -w -r1.2 shared_ptr_132.hpp 42a43,44
#if !BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x564) )
43a46
#endif 123a127,130 #if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x564) ) template<class Y> explicit shared_ptr(Y * p): px(p), pn(p, boost::checked_deleter<Y>()) // Y must be complete #else 125a133 #endif
and
cvs diff -w shared_count_132.hpp (in directory D:\Projects\boost\boost\serialization\detail) Index: shared_count_132.hpp =================================================================== RCS file: /cvsroot/boost/boost/boost/serialization/detail/shared_count_132.hpp,v retrieving revision 1.1 diff -w -r1.1 shared_count_132.hpp 46a47,48
#if !BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x564) )
47a50
#endif 86a90 #if !BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x564) ) 87a92 #endif 92a98,100 #if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x564) ) typedef boost::detail::lightweight_mutex mutex_type; #else 93a102 #endif