Commit a95bde1e by Sergey Lyskov Committed by Wenzel Jakob

Adding documentation for value_error. Fixing various formatting issues. Removing…

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.
parent 25ac2190
...@@ -779,6 +779,10 @@ exceptions: ...@@ -779,6 +779,10 @@ exceptions:
| | accesses in ``__getitem__``, | | | accesses in ``__getitem__``, |
| | ``__setitem__``, etc.) | | | ``__setitem__``, etc.) |
+--------------------------------------+------------------------------+ +--------------------------------------+------------------------------+
| :class:`pybind11::value_error` | ``ValueError`` (used to |
| | indicate wrong value passed |
| | in ``container.remove(...)`` |
+--------------------------------------+------------------------------+
| :class:`pybind11::error_already_set` | Indicates that the Python | | :class:`pybind11::error_already_set` | Indicates that the Python |
| | exception flag has already | | | exception flag has already |
| | been initialized | | | been initialized |
...@@ -1531,4 +1535,3 @@ work, it is important that all lines are indented consistently, i.e.: ...@@ -1531,4 +1535,3 @@ work, it is important that all lines are indented consistently, i.e.:
.. [#f4] http://www.sphinx-doc.org .. [#f4] http://www.sphinx-doc.org
.. [#f5] http://github.com/pybind/pbtest .. [#f5] http://github.com/pybind/pbtest
/* /*
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> Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>
...@@ -11,17 +11,27 @@ ...@@ -11,17 +11,27 @@
#include <pybind11/stl_binders.h> #include <pybind11/stl_binders.h>
class A
{ class A {
public: public:
A() = delete; 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;
}
void init_ex17(py::module &m) {
pybind11::class_<A>(m, "A")
.def(pybind11::init<int>());
pybind11::vector_binder<int>(m, "VectorInt");
py::vector_binder<A>(m, "VectorA"); pybind11::vector_binder<A>(m, "VectorA");
} }
#!/usr/bin/env python #!/usr/bin/env python
from __future__ import print_function from __future__ import print_function
from example import VectorInt, VectorA from example import VectorInt, VectorA, A
v_int = VectorInt(2) v_int = VectorInt(2)
print( v_int.size() ) print(len(v_int))
print( bool(v_int) ) print(bool(v_int))
v_int2 = VectorInt(2) v_int2 = VectorInt(2)
print( v_int == v_int2 ) print(v_int == v_int2)
v_int2[1] = 1 v_int2[1] = 1
print( v_int != v_int2 ) print(v_int != v_int2)
v_int2.push_back(2) v_int2.append(2)
v_int2.push_back(3) v_int2.append(3)
v_int2.insert(0, 1) v_int2.insert(0, 1)
v_int2.insert(0, 2) v_int2.insert(0, 2)
v_int2.insert(0, 3) v_int2.insert(0, 3)
print(v_int2) print(v_int2)
v_int.append(99)
v_int2[2:-2] = v_int
print(v_int2)
v_a = VectorA() v_a = VectorA()
v_a.append(A(1))
v_a.append(A(2))
print(v_a)
...@@ -3,3 +3,9 @@ True ...@@ -3,3 +3,9 @@ True
True True
True True
VectorInt[3, 2, 1, 0, 1, 2, 3] 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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment