Нет в boost.python - PullRequest
       12

Нет в boost.python

14 голосов
/ 03 февраля 2010

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

d = {}
d[0] = None

в C ++ с boost.python

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

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

Ответы [ 2 ]

23 голосов
/ 03 февраля 2010

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

object();

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

2 голосов
/ 03 февраля 2010

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

d[0] = d.get(0)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...