Подтвердить что ты не робот

Нет в boost.python

Я пытаюсь перевести следующий код

d = {}
d[0] = None

в С++ с boost.python

boost::python::dict d;
d[0] = ?None

Как я могу получить объект None в boost.python?

4b9b3361

Ответ 1

Нет конструктора boost::python::object, который принимает PyObject* (из моего понимания, такой ctor бы недействил бы всю идею, если в любом случае сопоставление типов Python с типами С++, поскольку PyObject * может быть любым). Согласно документации:

object();

Эффекты: Создает объект, управляющий ссылкой на объект Python None.

Ответ 2

Вы можете использовать:

d[0] = d.get(0)

d.get по умолчанию используется None, если вы не укажете значение по умолчанию.