草庐IT

ZN5boost

全部标签

python - 打印 Boost Python 对象

我有一个BoostPython对象py::objectobj=whatever();我想使用普通的python规则打印它。//Iwanttheeffectofprint'Myobjectis',objstd::cout这不会使用巨大的编译器转储进行编译。我该怎么做? 最佳答案 Boost.Python没有operator但我们可以编写自己的代码来模仿Python的native功能:调用str:namespacepy=boost::python;std::ostream&operator(py::str(o))();}

c++ - 如何使用 boost::python 将 std::pair 公开给 python?

如何公开std::pair使用boost::python到python?例如,当我公开vector时我简单地写:class_>("StringVec").def(vector_indexing_suite>());但我不知道如何处理std::pair。 最佳答案 我找到了一个解决方案。公开std::pair的最简单示例是:class_>("IntPair").def_readwrite("first",&std::pair::first).def_readwrite("second",&std::pair::second);

python - 在制作 boost.python helloword 演示时不安全地使用相对 rpath libboost.dylib?

最近在学习boostC++库。我想用python调用现有的C++项目。我已经使用brewinstallboost在OSX10.11下安装了boost。我的python版本2.7。我做了一个hello.c:charconst*greet(){return"hello,world";}#includeBOOST_PYTHON_MODULE(hello){usingnamespaceboost::python;def("greet",greet);}和生成文件:PYTHON_VERSION=2.7PYTHON_INCLUDE=/usr/include/python$(PYTHON_VERSI

c++ - Mac OS X 上的 Boost.Python : "TypeError: Attribute name must be string"

我最近使用MacPorts安装了Boost,目的是在C++中嵌入一些Python。然后我决定使用Python网站上的示例检查我是否正确配置了Xcode:#includeusingnamespaceboost::python;intmain(intargc,char**argv){try{Py_Initialize();objectmain_module(handle(borrowed(PyImport_AddModule("__main__"))));objectmain_namespace=main_module.attr("__dict__");handleignored(PyRu

c++ - 关于 Boost::Python 和 Boost::Threads 的问题

我和一个friend正在开发一个使用Boost::Python的应用程序。我在C++中定义了一个接口(interface)(一个纯虚类),通过Boost::Python向用户公开,用户必须从它继承并创建一个类,应用程序采用该类并将其用于某些回调机制。目前一切进展顺利。现在,函数回调可能需要一些时间(用户可能编写了一些繁重的东西)......但是我们需要重新绘制窗口,所以它看起来不会“卡住”。我们想为此使用Boost::Thread.一次只会运行一个回调(没有其他线程会同时调用python),所以我们认为这不会有什么大不了的......因为我们不在python中使用线程,也不在为Pyth

python - 如何将原始指针传递给 Boost.Python?

我正在尝试使用Boost.Python作为C++函数的包装器,该函数接收指针、修改数据(例如在Python端作为numpy数组进行管理)并返回。如何让Pythonnumpy和Boost.Python协作并为我提供函数内部的原始指针?#includenamespace{charconst*greet(double*p){*p=2.;return"helloworld";}}BOOST_PYTHON_MODULE(module){boost::python::def("greet",&greet);}当我尝试使用Python时,importnumpyasnpa=np.empty([2],d

python - MacOSX + Boost_Python + PyFTGL :- Symbol not found, 预计在:平面命名空间

我正在尝试在MacOSXYosemite上安装PyFTGL。我使用的python版本是macports的2.7。我已经从指定+python27的macports安装了boost。为了安装PyFTGL,我从源代码构建并编辑了setup.py文件:module_ftgl_libs=['GLU','GL','freetype','z','ftgl','boost_python',]module_ftgl=Extension('FTGL',module_ftgl_src,include_dirs=module_ftgl_include_dirs,libraries=module_ftgl_li

python - 使从 boost-python 类继承的 Python 类可复制

我有一个继承自boost-python类的类:classMagnet(CMagnet):#CMagnetisaC++basedboost-pythonclassdef__init__(self):CMagnet.__init__(self)defpython_method(self):...在CMagnet的C++实现中,我使用了来自1的代码,如张贴在2.我现在遇到以下问题:当我执行以下操作时:magnet=Magnet()magnet_2=copy.deepcopy(magnet)那么magnet是Magnet类型,magnet_2是CMagnet类型。我需要它也是Magnet类型。

python - Boost Python用默认参数包装静态成员函数重载

我有附加的python的C++包装器示例:成员函数(方法)是静态的,带有默认参数。所以我使用BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS来定义重载函数。没有编译错误,但是当我调用静态成员函数时,我得到如下错误:importboostPythonTestboostPythonTest.C.method("string")---------------------------------------------------------------------------ArgumentErrorTraceback(mostrecentcalllast)in(

c++ - 使用 boost::spirit 解析 python 语法 - 问题

我正在尝试使用boost::spirit库编写一个python解析器。这是代码:templateclassParser:publicqi::grammar{public:Parser():Parser::base_type(small_stmt){NEWLINE=lit("");INDENT=lit("");DEDENT=lit("");ENDMARKER=lit("");NAME=identifier.alias();NUMBER=integer|longinteger|floatnumber|imagnumber;STRING=stringliteral.alias();ident