51Testing软件测试论坛
标题:
Python.boost 扩展C++库的类的函数
[打印本页]
作者:
丹丹丹丹~~~~
时间:
2016-11-23 16:09
标题:
Python.boost 扩展C++库的类的函数
想用Python.boost映射C++库的类的函数,但是该类的构造函数是private私有的,且构造函数的类型不能修改,使用class_<a>("a",init<>())提示错误说该类的构造函数为private,不能调用。怎么办啊,各位大神们求助啊,急,在线等~
作者:
丹丹丹丹~~~~
时间:
2016-11-23 16:17
C:\Users\Administrator\Desktop\2016-11-23_161419.png
C:\Users\Administrator\Desktop\2016-11-23_161436.png
代码如图
作者:
丹丹丹丹~~~~
时间:
2016-11-23 16:20
class_<VOS_Msg>("VOS_Msg",init<>())
.def("GetSenderTid",&VOS_Msg::GetSenderTid)
;
编译:
d:\boost_1_62_0\boost\python\object\value_holder.hpp(134) : error C2248: “VOS_Msg::VOS_Msg”: 无法访问 private 成员(在“VOS_Msg”类中声明)
1> c:\users\administrator\desktop\python-test\vos.h(538) : 参见“VOS_Msg::VOS_Msg”的声明
1> c:\users\administrator\desktop\python-test\vos.h(533) : 参见“VOS_Msg”的声明
1> d:\boost_1_62_0\boost\python\object\make_instance.hpp(71): 参见对正在编译的函数 模板 实例化“boost::python:
bjects::value_holder<Value>::value_holder<boost::reference_wrapper<T>>(PyObject *,A0)”的引用
1> with
1> [
1> Value=VOS_Msg,
1> T=const VOS_Msg,
1> A0=boost::reference_wrapper<const VOS_Msg>
1> ]
1> d:\boost_1_62_0\boost\python\object\make_instance.hpp(70): 编译类 模板 成员函数“boost::python:
bjects::value_holder<Value> *boost::python:
bjects::make_instance<T,Holder>::construct(void *,PyObject *,boost::reference_wrapper<const T>)”时
1> with
1> [
1> Value=VOS_Msg,
1> T=VOS_Msg,
1> Holder=boost::python:
bjects::value_holder<VOS_Msg>
1> ]
1> d:\boost_1_62_0\boost\python\object\class_wrapper.hpp(29): 参见对正在编译的类 模板 实例化“boost::python:
bjects::make_instance<T,Holder>”的引用
1> with
1> [
1> T=VOS_Msg,
1> Holder=boost::python:
bjects::value_holder<VOS_Msg>
1> ]
1> d:\boost_1_62_0\boost\python\object\class_wrapper.hpp(28): 编译类 模板 成员函数“PyObject *boost::python:
bjects::class_cref_wrapper<Src,MakeInstance>::convert(const Src &)”时
1> with
1> [
1> Src=VOS_Msg,
1> MakeInstance=boost::python:
bjects::make_instance<VOS_Msg,boost::python:
bjects::value_holder<VOS_Msg>>
1> ]
1> d:\boost_1_62_0\boost\python\object\class_metadata.hpp(270): 参见对正在编译的类 模板 实例化“boost::python:
bjects::class_cref_wrapper<Src,MakeInstance>”的引用
1> with
1> [
1> Src=VOS_Msg,
1> MakeInstance=boost::python::objects::make_instance<VOS_Msg,boost::python::objects::value_holder<VOS_Msg>>
1> ]
1> d:\boost_1_62_0\boost\python\object\class_metadata.hpp(227): 参见对正在编译的函数 模板 实例化“void boost::python::objects::class_metadata<T,X1,X2,X3>::maybe_register_class_to_python<T2>(T2 *,boost::mpl::false_)”的引用
1> with
1> [
1> T=VOS_Msg,
1> X1=boost::python::detail::not_specified,
1> X2=boost::python::detail::not_specified,
1> X3=boost::python::detail::not_specified,
1> T2=VOS_Msg
1> ]
1> d:\boost_1_62_0\boost\python\object\class_metadata.hpp(217): 参见对正在编译的函数 模板 实例化“void boost::python::objects::class_metadata<T,X1,X2,X3>::register_aux2<T,boost::integral_constant<bool,val>>(T2 *,Callback)”的引用
1> with
1> [
1> T=VOS_Msg,
1> X1=boost::python::detail::not_specified,
1> X2=boost::python::detail::not_specified,
1> X3=boost::python::detail::not_specified,
1> val=false,
1> T2=VOS_Msg,
1> Callback=boost::integral_constant<bool,false>
1> ]
1> d:\boost_1_62_0\boost\python\object\class_metadata.hpp(215): 编译类 模板 成员函数“void boost::python::objects::class_metadata<T,X1,X2,X3>::register_aux(void *)”时
1> with
1> [
1> T=VOS_Msg,
1> X1=boost::python::detail::not_specified,
1> X2=boost::python::detail::not_specified,
1> X3=boost::python::detail::not_specified
1> ]
1> d:\boost_1_62_0\boost\python\class.hpp(174): 参见对正在编译的类 模板 实例化“boost::python::objects::class_metadata<T,X1,X2,X3>”的引用
1> with
1> [
1> T=VOS_Msg,
1> X1=boost::python::detail::not_specified,
1> X2=boost::python::detail::not_specified,
1> X3=boost::python::detail::not_specified
1> ]
1> d:\boost_1_62_0\boost\python\class.hpp(205): 参见对正在编译的类 模板 实例化“boost::python::class_<W>::id_vector”的引用
1> with
1> [
1> W=VOS_Msg
1> ]
作者:
Bugkiller
时间:
2016-11-24 14:26
66666
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2