Add documentation re: PYBIND11_DTYPE macro

This commit is contained in:
Ivan Smirnov 2016-07-02 15:33:04 +01:00
parent 4c9a160a1d
commit 223afe37fa

View File

@ -1358,6 +1358,30 @@ template paramenter, and it ensures that non-conforming arguments are converted
into an array satisfying the specified requirements instead of trying the next into an array satisfying the specified requirements instead of trying the next
function overload. function overload.
NumPy structured types
======================
In order for ``py::array_t`` to work with structured (record) types, we first need
to register the memory layout of the type. This could be done via ``PYBIND11_DTYPE``
macro which expects the type followed by field names:
.. code-block:: cpp
struct A {
int x;
double y;
};
struct B {
int z;
A a;
};
PYBIND11_DTYPE(A, x, y);
PYBIND11_DTYPE(B, z, a);
/* now both A and B can be used as template arguments to py::array_t */
Vectorizing functions Vectorizing functions
===================== =====================