Dùng Boost.Python để bọc (wrap) đối tượng Python trong C/C++.
Boost.Python Library
Framework liên kết Python và C++. Cho phép expose class, hàm, object C++ sang Python và ngược lại mà không cần thay đổi code C++. Chỉ cần compiler C++.
Đặc điểm:
- Non-intrusive: không sửa code C++ gốc.
- Lý tưởng cho expose thư viện thứ 3 (3rd-party) cho Python.
- Dùng metaprogramming nâng cao → cú pháp giống ngôn ngữ định nghĩa giao diện (IDL) khai báo.
Ví dụ tối thiểu
// math.cpp
#include <boost/python.hpp>
int add(int a, int b) { return a + b; }
BOOST_PYTHON_MODULE(math) {
using namespace boost::python;
def("add", add);
}
Biên dịch thành shared library (math.so / math.pyd), import trong Python: import math; math.add(2,3).
Thay thế hiện đại: pybind11 — header-only, C++11+, nhẹ hơn, dễ dùng hơn Boost.Python.