Merge [58123], [58127], [58128] to release. Fixes #3666.

[SVN r58195]
This commit is contained in:
Peter Dimov
2009-12-06 17:50:28 +00:00
parent a3b84f8586
commit ba349679f3
7 changed files with 134 additions and 4 deletions

View File

@@ -9,6 +9,8 @@
// http://www.boost.org/LICENSE_1_0.txt)
//
#include <boost/config.hpp>
#include <boost/pointer_cast.hpp>
#include <boost/shared_ptr.hpp>
@@ -58,6 +60,8 @@ class derived_derived
// And now some simple check functions
#if !defined( BOOST_NO_RTTI )
template <class BasePtr>
bool check_dynamic_pointer_cast(const BasePtr &ptr)
{
@@ -74,6 +78,8 @@ bool check_dynamic_pointer_cast(const BasePtr &ptr)
dynamic_cast<derived_derived*>(boost::get_pointer(ptr));
}
#endif
template <class BasePtr>
bool check_static_pointer_cast(const BasePtr &ptr)
{
@@ -107,7 +113,9 @@ int main()
boost::shared_ptr<base> ptr(new derived);
#if !defined( BOOST_NO_RTTI )
BOOST_TEST( check_dynamic_pointer_cast( ptr ) );
#endif
BOOST_TEST( check_static_pointer_cast( ptr ) );
BOOST_TEST( check_const_pointer_cast( ptr ) );
}
@@ -117,7 +125,9 @@ int main()
boost::scoped_ptr<base> ptr(new derived);
#if !defined( BOOST_NO_RTTI )
BOOST_TEST( check_dynamic_pointer_cast( ptr.get() ) );
#endif
BOOST_TEST( check_static_pointer_cast( ptr.get() ) );
BOOST_TEST( check_const_pointer_cast( ptr.get() ) );
}