From de3ad078991fee386f6300affcd9b09d0db40c7d Mon Sep 17 00:00:00 2001 From: Wenzel Jakob Date: Tue, 2 Feb 2016 11:38:21 +0100 Subject: [PATCH] documentation on exporting constants (closes #92) --- docs/advanced.rst | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/docs/advanced.rst b/docs/advanced.rst index d87abc8ae..1c2e4f482 100644 --- a/docs/advanced.rst +++ b/docs/advanced.rst @@ -12,6 +12,22 @@ present: namespace py = pybind11; +Exporting constants and mutable objects +======================================= + +To expose a C++ constant, use the ``attr`` function to register it in a module +as shown below. The ``int_`` class is one of many small wrapper objects defined +in ``pybind11/pytypes.h``. General objects (including integers) can also be +converted using the function ``cast``. + +.. code-block:: cpp + + PYBIND11_PLUGIN(example) { + py::module m("example", "pybind11 example plugin"); + m.attr("MY_CONSTANT") = py::int_(123); + m.attr("MY_CONSTANT_2") = py::cast(new MyObject()); + } + Operator overloading ==================== @@ -280,7 +296,7 @@ Following this, we are able to define a constructor as usual. The Python session below shows how to override ``Animal::go`` and invoke it via a virtual method call. -.. code-block:: cpp +.. code-block:: python >>> from example import * >>> d = Dog()