Можете ли вы использовать одноэлементный шаблон в C ++, используя Cython для взаимодействия с Python?

0

Я пишу проект в c++ и используя cython, чтобы превратить код c++ в модуль python. Я планировал использовать шаблон дизайна singleton для хранения и скрытия базы данных. Кроме того, я собирался использовать статические функции-члены для взаимодействия с этой скрытой базой данных. Кто-нибудь знает, возможна ли эта методология в Cython? Кроме того, может быть, лучше стратегия/шаблон для кодирования этого?

Теги:
cython

1 ответ

0
Лучший ответ

Идея функции статического члена не работает. Но можно сделать одноэлемент в c++, а интерфейс singleton в python с помощью cython. Мой git-хаб (https://github.com/drzeus99/cython-singleton) показывает код, который я использовал.

Из моего тестирования с помощью этого кода я обнаружил, что вам абсолютно необходимо использовать указатели для синглтона c++. Кроме того, вам нужен общедоступный метод удаления, поэтому, когда python выйдет из c++ singleton, будет удален. При создании и внедрении синглтона c++ в коде cython (.pyx) вам также необходимо реализовать синглтон в python и сохранить реализованный на Cython синглтон c++ в реализации python. Причиной синглтона python является синглтон c++, который генерирует только одноэлемент на уровне c++, но python не применяет код c++ в качестве одиночного элемента при создании новых объектов python. Это приводит к проблемам с памятью, если два (Single) объекта c++ создаются на питоне и удаляются. Программа аварийно завершается.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню