2010-02-03 8 views
12

Estoy tratando de traducir el siguiente códigoNinguno en Boost.Python

d = {} 
d[0] = None 

en C++ con Boost.Python

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

¿Cómo puedo obtener un objeto Ninguno en Boost.Python?

Respuesta

18

No hay ningún constructor de boost::python::object que toma un PyObject* (de mi entendimiento, una ctor así sería invalida toda la idea de si los tipos de mapeo de Python a C++ tipos de todos modos, porque la PyObject * podrían ser cualquier cosa). De acuerdo con la documentation:

object();

Efectos: Construye un objeto gestión de una referencia al objeto Python None.

2

que puede usar:

d[0] = d.get(0) 

d.get defecto es None si no se especifica un valor por defecto.