Yeah, just export View using Ptr<View> as the HeldType.
as if it were that easy! ;) i followed the manual for that and exposed Ptr<T> as a pointee using namespace boost { namespace python { template <typename T> struct pointee< Mu::Ptr<T> > { typedef T type; }; } } in a macro that exposes the class to python, class_ is instantiated like this class_<ClassType, bases<BaseClassType>, Ptr<ClassType>, boost::noncopyable > exportedClass(interfaceName, no_init) where ClassType is an interface class. the compiler gives me: p:\MuFramework\Shared\Code\boost\boost\python\object\make_ptr_instance.hpp(30) : error C2784: 'T *boost::python::get_pointer(const boost::python::handle<T> &)' : could not deduce template argument for 'const boost::python::handle<T> &' from 'const boost::python::objects::class_metadata<T,X1,X2,X3>::held_type' with [ T=ClassType, X1=boost::python::bases<BaseClassType>, X2=Mu::Ptr<ClassType>, X3=boost::noncopyable ] p:\MuFramework\Shared\Code\boost\boost\python\handle.hpp(143) : see declaration of 'boost::python::get_pointer' p:\MuFramework\Shared\Code\boost\boost\python\object\make_instance.hpp(26) : see reference to function template instantiation 'PyTypeObject *boost::python::objects::make_ptr_instance<T,Holder>::get_class_object<Arg>(const Ptr &)' being compiled with [ T=ClassType, Holder=boost::python::objects::pointer_holder<boost::python::objects::class_metadata<ClassType,boost::python::bases<BaseClassType>,Mu::Ptr<ClassType>,boost::noncopyable>::held_type,ClassType>, Arg=boost::python::objects::class_metadata<ClassType,boost::python::bases<BaseClassType>,Mu::Ptr<ClassType>,boost::noncopyable>::held_type, Ptr=boost::python::objects::class_metadata<ClassType,boost::python::bases<BaseClassType>,Mu::Ptr<ClassType>,boost::noncopyable>::held_type ] p:\MuFramework\Shared\Code\boost\boost\python\object\class_wrapper.hpp(36) : see reference to function template instantiation 'PyObject *boost::python::objects::make_instance_impl<T,Holder,Derived>::execute<Src>(Arg &)' being compiled with [ T=ClassType, Holder=boost::python::objects::pointer_holder<boost::python::objects::class_metadata<ClassType,boost::python::bases<BaseClassType>,Mu::Ptr<ClassType>,boost::noncopyable>::held_type,ClassType>, Derived=boost::python::objects::make_ptr_instance<ClassType,boost::python::objects::pointer_holder<boost::python::objects::class_metadata<ClassType,boost::python::bases<BaseClassType>,Mu::Ptr<ClassType>,boost::noncopyable>::held_type,ClassType>>, Src=boost::python::objects::class_metadata<ClassType,boost::python::bases<BaseClassType>,Mu::Ptr<ClassType>,boost::noncopyable>::held_type, Arg=boost::python::objects::class_metadata<ClassType,boost::python::bases<BaseClassType>,Mu::Ptr<ClassType>,boost::noncopyable>::held_type ] p:\MuFramework\Shared\Code\boost\boost\python\object\class_wrapper.hpp(35) : while compiling class-template member function 'PyObject *boost::python::objects::class_value_wrapper<Src,MakeInstance>::convert(Src)' with [ Src=boost::python::objects::class_metadata<ClassType,boost::python::bases<BaseClassType>,Mu::Ptr<ClassType>,boost::noncopyable>::held_type, MakeInstance=boost::python::objects::make_ptr_instance<ClassType,boost::python::objects::pointer_holder<boost::python::objects::class_metadata<ClassType,boost::python::bases<BaseClassType>,Mu::Ptr<ClassType>,boost::noncopyable>::held_type,ClassType>> ] p:\MuFramework\Shared\Code\boost\boost\python\object\class_metadata.hpp(237) : see reference to class template instantiation 'boost::python::objects::class_value_wrapper<Src,MakeInstance>' being compiled with [ Src=boost::python::objects::class_metadata<ClassType,boost::python::bases<BaseClassType>,Mu::Ptr<ClassType>,boost::noncopyable>::held_type, MakeInstance=boost::python::objects::make_ptr_instance<ClassType,boost::python::objects::pointer_holder<boost::python::objects::class_metadata<ClassType,boost::python::bases<BaseClassType>,Mu::Ptr<ClassType>,boost::noncopyable>::held_type,ClassType>> ] p:\MuFramework\Shared\Code\boost\boost\python\object\class_metadata.hpp(221) : see reference to function template instantiation 'void boost::python::objects::class_metadata<T,X1,X2,X3>::maybe_register_pointer_to_python<T2>(T2 *,boost::mpl::false_ *,boost::mpl::false_ *)' being compiled with [ T=ClassType, X1=boost::python::bases<BaseClassType>, X2=Mu::Ptr<ClassType>, X3=boost::noncopyable, T2=ClassType ] p:\MuFramework\Shared\Code\boost\boost\python\object\class_metadata.hpp(208) : see reference to function template instantiation 'void boost::python::objects::class_metadata<T,X1,X2,X3>::register_aux2<T,boost::mpl::bool_<C_>>(T2 *,Callback)' being compiled with [ T=ClassType, X1=boost::python::bases<BaseClassType>, X2=Mu::Ptr<ClassType>, X3=boost::noncopyable, C_=false, T2=ClassType, Callback=boost::mpl::bool_<false> ] p:\MuFramework\Shared\Code\boost\boost\python\object\class_metadata.hpp(206) : while compiling class-template member function 'void boost::python::objects::class_metadata<T,X1,X2,X3>::register_aux(void *)' with [ T=ClassType, X1=boost::python::bases<BaseClassType>, X2=Mu::Ptr<ClassType>, X3=boost::noncopyable ] p:\MuFramework\Shared\Code\boost\boost\python\class.hpp(174) : see reference to class template instantiation 'boost::python::objects::class_metadata<T,X1,X2,X3>' being compiled with [ T=ClassType, X1=boost::python::bases<BaseClassType>, X2=Mu::Ptr<ClassType>, X3=boost::noncopyable ] p:\MuFramework\Shared\Code\boost\boost\python\class.hpp(592) : see reference to class template instantiation 'boost::python::class_<W,X1,X2,X3>::id_vector' being compiled with [ W=ClassType, X1=boost::python::bases<BaseClassType>, X2=Mu::Ptr<ClassType>, X3=boost::noncopyable ] c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\deque(19) : while compiling class-template member function 'boost::python::class_<W,X1,X2,X3>::class_(const char *,boost::python::no_init_t)' with [ W=ClassType, X1=boost::python::bases<BaseClassType>, X2=Mu::Ptr<ClassType>, X3=boost::noncopyable ] p:\MuFramework\Libraries\MuPython\MuPython.Sandoz.h(37) : see reference to class template instantiation 'boost::python::class_<W,X1,X2,X3>' being compiled with [ W=ClassType, X1=boost::python::bases<BaseClassType>, X2=Mu::Ptr<ClassType>, X3=boost::noncopyable ] any idea?