Python
The C++ code used for the examples below can be found
here, and it is assumed that that code is
loaded at the start of any session.
Download it, save it under the name features.h, and load it:
>>> import cppyy >>> cppyy.include('features.h') >>>
PyObject
Arguments and return types of PyObject* can be used, and passed on to
CPython API calls (or through cpyext in PyPy).
Doc strings
The documentation string of a method or function contains the C++ arguments and return types of all overloads of that name, as applicable. Example:
>>> from cppyy.gbl import Concrete >>> print Concrete.array_method.__doc__ void Concrete::array_method(int* ad, int size) void Concrete::array_method(double* ad, int size) >>>
Help
Bound C++ class is first-class Python and can thus be inspected like any
Python objects can.
For example, we can ask for help():
>>> help(Concrete) Help on class Concrete in module gbl: class Concrete(Abstract) | Method resolution order: | Concrete | Abstract | CPPInstance | __builtin__.object | | Methods defined here: | | __assign__(self, const Concrete&) | Concrete& Concrete::operator=(const Concrete&) | | __init__(self, *args) | Concrete::Concrete(int n = 42) | Concrete::Concrete(const Concrete&) | etc. ....