# Python C++ interface

pybind11 exposes Python types and functions using thin C++ wrappers, which makes it possible to conveniently call Python code from C++ without resorting to Python’s C API.

- Python types
  - Available wrappers
  - Casting back and forth
  - Accessing Python libraries from C++
  - Calling Python functions
  - Calling Python methods
  - Keyword arguments
  - Unpacking arguments
- NumPy
  - Buffer protocol
  - Arrays
  - Structured types
  - Vectorizing functions
  - Direct access
  - Ellipsis
- Utilities
  - Using Python’s print function in C++
  - Capturing standard output from ostream
  - Evaluating Python expressions from strings and files