Библиотека Boost Python является основой для взаимодействия Python и C++. Он позволяет быстро и легко открывать функции и объекты классов C++ для Python, и наоборот, не используя специальных инструментов - только компилятор C++. Он предназначен для обертывания интерфейсов C++ ненавязчиво, так что вам не нужно менять код C++, чтобы обернуть его. Python идеально подходит для демонстрации 3-х сторонних библиотек Python. Использование библиотекой передовых методов метапрограммирования упрощает ее синтаксис для пользователей, так что оберточный код приобретает вид декларативного языка определения интерфейса (IDL).
Следуя традиции C/C++, давайте начнем с «привет, мир». Функция C++:
char const* greet()
{
return "hello, world";
}
Вы можете использовать Python, написав Boost. Обертка Python:
#include <boost/python.hpp>
BOOST_PYTHON_MODULE(hello_ext)
{
using namespace boost::python;
def("greet", greet);
}
Вот так. Мы закончили. Теперь мы можем создать общую библиотеку. Полученный DLL теперь виден Python. Вот пример сессии Python:
>>> import hello_ext
>>> print hello_ext.greet()
hello, world
Следующая остановка... Создание модуля Hello World от начала до конца