Adding documentation for value_error. Fixing various formatting issues. Removing redundant binding for C++ style methods. Adding bindings for iterator and slicing protocol. Extending examples.
diff --git a/example/example17.cpp b/example/example17.cpp
index 8c30457..8370b5c 100644
--- a/example/example17.cpp
+++ b/example/example17.cpp
@@ -1,5 +1,5 @@
/*
- example/example17.cpp -- Usade of stl_binders functions
+ example/example17.cpp -- Usage of stl_binders functions
Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>
@@ -11,17 +11,27 @@
#include <pybind11/stl_binders.h>
-class A
-{
+
+class A {
public:
A() = delete;
+ A(int v) :a(v) {}
+
+ int a;
};
-void init_ex17(py::module &m)
-{
- pybind11::class_<A>(m, "A");
- py::vector_binder<int>(m, "VectorInt");
+std::ostream & operator<<(std::ostream &s, A const&v) {
+ s << "A{" << v.a << '}';
+ return s;
+}
- py::vector_binder<A>(m, "VectorA");
+
+void init_ex17(py::module &m) {
+ pybind11::class_<A>(m, "A")
+ .def(pybind11::init<int>());
+
+ pybind11::vector_binder<int>(m, "VectorInt");
+
+ pybind11::vector_binder<A>(m, "VectorA");
}
diff --git a/example/example17.py b/example/example17.py
index d41a325..52cda42 100644
--- a/example/example17.py
+++ b/example/example17.py
@@ -1,24 +1,31 @@
#!/usr/bin/env python
from __future__ import print_function
-from example import VectorInt, VectorA
+from example import VectorInt, VectorA, A
v_int = VectorInt(2)
-print( v_int.size() )
+print(len(v_int))
-print( bool(v_int) )
+print(bool(v_int))
v_int2 = VectorInt(2)
-print( v_int == v_int2 )
+print(v_int == v_int2)
v_int2[1] = 1
-print( v_int != v_int2 )
+print(v_int != v_int2)
-v_int2.push_back(2)
-v_int2.push_back(3)
+v_int2.append(2)
+v_int2.append(3)
v_int2.insert(0, 1)
v_int2.insert(0, 2)
v_int2.insert(0, 3)
print(v_int2)
+v_int.append(99)
+v_int2[2:-2] = v_int
+print(v_int2)
+
v_a = VectorA()
+v_a.append(A(1))
+v_a.append(A(2))
+print(v_a)
diff --git a/example/example17.ref b/example/example17.ref
index 249fbab..388e0f0 100644
--- a/example/example17.ref
+++ b/example/example17.ref
@@ -3,3 +3,9 @@
True
True
VectorInt[3, 2, 1, 0, 1, 2, 3]
+VectorInt[3, 2, 0, 0, 99, 2, 3]
+A constructor
+A destructor
+A constructor
+A destructor
+VectorA[A{1}, A{2}]
\ No newline at end of file