提升Python和C ++头文件

时间:2012-08-21 09:13:55

标签: c++ python boost boost-python

我想为我的python提供C++ shared library界面,我计划使用Boost::python相同,我的C++代码很大,并且分为{{{ 1}}和headers个文件。但是所有implementation示例都讨论了在python::boost文件中添加python::boost构造以及如何为头文件处理此问题。我可以使用相同的代码,以便我可以构建cpp共享库和C++

1 个答案:

答案 0 :(得分:6)

以下是指向如何使用Boost.Python的指南的链接:http://www.boost.org/doc/libs/1_51_0/libs/python/doc/tutorial/doc/html/python/exposing.html

使用标头/实现结构的示例:

//hpp
#include <boost/python.hpp>
using namespace boost::python;

struct World
{
    void set(std::string msg);
    std::string greet();
    std::string msg;
};

BOOST_PYTHON_MODULE(hello)
{
    class_<World>("World")
        .def("greet", &World::greet)
        .def("set", &World::set)
    ;
}

//cpp

void World::set(std::string msg) { this->msg = msg; }
std::string greet() { return this->msg; }