/ / Як Boost.Python утримує клас C ++? - python, c ++, boost, boost-python

Як Boost.Python тримає клас C ++? - python, c ++, boost, boost-python

Я знаю, як використовувати Boost.Python, щоб обернути клас C ++, піддаючи Python. Він дійсно потужний для використання Boost.Python, щоб зробити упаковку речей так зручно.

Однак, деякі деталі пояснюються про те, як відбувається Boost.Python тримайся клас С ++.

Код Boost.Python важко читати чи налагоджувати, тому що він написаний в моді програмування мета-програмування і все просто виконувати під час компіляції. Я сканував документацію та "Будівництво гібридних систем з Boost Python" статті авторів, але не знайшов відповіді.

Отже, як Boost.Python утримує C ++ клас?

Чи містить він обернений екземпляр класу C ++ як приватний член PyObject? Чи всі функції успадкування, поліморфні тощо, що нагадують клас, імітуються шляхом делегування до утримуваної інстанції?

Відповіді:

0 для відповіді № 1

Отже, як Boost.Python утримує C ++ клас?

Щоб бути педантичним, у C ++ немає класів під час виконання, тільки об'єкти або екземпляри класу.

Обгортки класу Boost утримують ваші об'єкти C ++ або за значенням, або за допомогою інтелектуального покажчика (в даний час лише застарілі std::auto_ptr підтримується).

На жаль, документація boost.python відсутня, ось деякі корисні посилання для вас