class QString { public: inline QString(const char *ch) : d(fromAscii_helper(ch)) { } private: struct Data { }; Data *d; static Data *fromAscii_helper(const char *str, int size = -1); }; class QGenericArgument { }; class QObject { }; class QWebPage : public QObject { public: template inline void qt_check_for_QOBJECT_macro(const T &_q_argument) const { } class ExtensionOption { }; } PyObject; namespace mpl_ { template< bool C_ > struct bool_; typedef bool_ false_; template< bool C_ > struct bool_ { static const bool value = C_; }; template< typename T, T N > struct integral_c { static const T value = N; }; } namespace boost { namespace mpl { using namespace mpl_; } template struct integral_constant : public mpl::integral_c { }; namespace detail { template struct cv_traits_imp { typedef T unqualified_type; }; } template< typename T > struct is_reference : ::boost::integral_constant { }; template< typename T > struct remove_cv { typedef typename boost::detail::cv_traits_imp::unqualified_type type; }; template< typename T > struct is_integral : ::boost::integral_constant { }; template< typename T > struct is_float : ::boost::integral_constant { }; namespace type_traits { template struct ice_or; template <> struct ice_or { static const bool value = false; }; } namespace detail { template< typename T > struct is_arithmetic_impl { static const bool value = (::boost::type_traits::ice_or< ::boost::is_integral::value, ::boost::is_float::value >::value) ; }; } template< typename T > struct is_arithmetic : ::boost::integral_constant::value> { }; namespace type_traits { template struct is_mem_fun_pointer_impl { static const bool value = false; }; } template< typename T > struct is_member_function_pointer : ::boost::integral_constant::type>::value> { }; template< typename T > struct is_member_pointer : ::boost::integral_constant::value> { }; namespace type_traits { template struct ice_and; template struct ice_and { static const bool value = false; }; template struct ice_not { static const bool value = true; }; } namespace detail { template< typename T > struct is_pointer_helper { static const bool value = false; }; template< typename T > struct is_pointer_impl { static const bool value = (::boost::type_traits::ice_and< ::boost::detail::is_pointer_helper::type>::value , ::boost::type_traits::ice_not< ::boost::is_member_pointer::value >::value >::value) ; }; } template< typename T > struct is_pointer : ::boost::integral_constant::value> { }; struct na { }; namespace mpl { template< bool C , typename T1 , typename T2 > struct if_c { typedef T2 type; }; template< typename T1 = na , typename T2 = na , typename T3 = na > struct if_ { private: typedef if_c< static_cast(T1::value) , T2 , T3 > almost_type_; public: typedef typename almost_type_::type type; }; } namespace python { namespace detail { template struct is_borrowed_ptr { static const bool value = false; }; } template class is_handle { public: static const bool value = false; }; } namespace noncopyable_ { class noncopyable { }; } typedef noncopyable_::noncopyable noncopyable; namespace python { namespace detail { template struct is_auto_ptr : mpl::false_ { }; template struct copy_ctor_mutates_rhs : is_auto_ptr { }; } namespace converter { template struct rvalue_from_python_storage { }; template struct rvalue_from_python_data : rvalue_from_python_storage { ~rvalue_from_python_data(); }; template struct pyobject_traits; template struct handle_object_manager_traits : pyobject_traits { }; template struct default_object_manager_traits { static const bool is_specialized = python::detail::is_borrowed_ptr::value ; }; template struct object_manager_traits : mpl::if_c< is_handle::value , handle_object_manager_traits , default_object_manager_traits >::type { }; template struct is_object_manager : mpl::bool_::is_specialized> { }; } namespace api { class object; } using api::object; } namespace detail{ template struct ct_imp { typedef const T& param_type; }; } template struct call_traits { typedef typename boost::detail::ct_imp< T, ::boost::is_pointer::value, ::boost::is_arithmetic::value >::param_type param_type; }; namespace python { namespace converter { template struct extract_pointer { }; template struct extract_reference { }; template struct extract_rvalue : private noncopyable { typedef typename mpl::if_< python::detail::copy_ctor_mutates_rhs , T& , typename call_traits::param_type >::type result_type; mutable rvalue_from_python_data m_data; }; template struct extract_object_manager { }; template struct select_extract { static const bool obj_mgr = is_object_manager::value ; static const bool ptr = is_pointer::value ; static const bool ref = is_reference::value ; typedef typename mpl::if_c< obj_mgr , extract_object_manager , typename mpl::if_c< ptr , extract_pointer , typename mpl::if_c< ref , extract_reference , extract_rvalue >::type >::type >::type type; }; } template struct extract : converter::select_extract::type { private: typedef typename converter::select_extract::type base; public: typedef typename base::result_type result_type; operator result_type() const { } extract(api::object const&); }; } } struct QHashData { static QHashData shared_null; }; template class QHash { QHashData *d; public: inline QHash() : d(&QHashData::shared_null) { } T &operator[](const Key &key); }; namespace PySide { class wrapper { }; class type_details { typedef QGenericArgument(*func_python_to_cpp_type)(const boost::python::object&, const char*); public: template static type_details* create_object_type_details(const char* type_name) { } template static type_details* create_value_type_details(const char* type_name) { type_details* self = new type_details(); self->m_func_python_to_cpp = &python_to_value_type; } func_python_to_cpp_type m_func_python_to_cpp; template static QGenericArgument python_to_value_type(const boost::python::object& obj, const char *type_name) { T* val = new T(boost::python::extract(obj)); } }; class type_manager { public: static type_manager& instance(); template void register_value_type(const char* type_name) { m_type_map[type_name] = type_details::create_value_type_details(type_name); } QHash m_type_map; }; } using namespace PySide; class qwebpage_extensionoption_wrapper : public QWebPage::ExtensionOption, public PySide::wrapper { static void define_python_class() throw(); }; void qwebpage_extensionoption_wrapper::define_python_class() throw() { type_manager::instance().register_value_type("QWebPage::ExtensionOption"); }