2
0
mirror of https://github.com/boostorg/python.git synced 2026-01-23 17:52:17 +00:00

merged from trunk

[SVN r31394]
This commit is contained in:
Dave Abrahams
2005-10-19 18:19:23 +00:00
parent 2e8a265abf
commit 8fa75c8fb5
3 changed files with 39 additions and 12 deletions

View File

@@ -30,6 +30,10 @@
# include <boost/mpl/for_each.hpp>
# include <boost/mpl/placeholders.hpp>
# include <boost/mpl/single_view.hpp>
# include <boost/mpl/assert.hpp>
# include <boost/type_traits/is_same.hpp>
# include <boost/type_traits/is_convertible.hpp>
# include <boost/noncopyable.hpp>
@@ -49,6 +53,8 @@ struct register_base_of
template <class Base>
inline void operator()(Base*) const
{
BOOST_MPL_ASSERT_NOT((is_same<Base,Derived>));
// Register the Base class
register_dynamic_id<Base>();
@@ -58,7 +64,7 @@ struct register_base_of
// Register the down-cast, if appropriate.
this->register_downcast((Base*)0, is_polymorphic<Base>());
}
private:
static inline void register_downcast(void*, mpl::false_) {}
@@ -186,7 +192,7 @@ struct class_metadata
, mpl::if_<
use_value_holder
, value_holder<T>
, pointer_holder<held_type,T>
, pointer_holder<held_type,wrapped>
>
>::type holder;
@@ -253,6 +259,8 @@ struct class_metadata
//
inline static void maybe_register_callback_class(void*, mpl::false_) {}
inline static void maybe_register_callback_class(wrapped*, mpl::true_) {}
template <class T2>
inline static void maybe_register_callback_class(T2*, mpl::true_)
{