mirror of
https://github.com/pybind/pybind11.git
synced 2026-05-12 17:26:13 +00:00
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.
This commit is contained in:
committed by
Wenzel Jakob
parent
25ac21903a
commit
a95bde1ea5
@@ -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");
|
||||
|
||||
py::vector_binder<A>(m, "VectorA");
|
||||
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");
|
||||
|
||||
pybind11::vector_binder<A>(m, "VectorA");
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -3,3 +3,9 @@ True
|
||||
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}]
|
||||
Reference in New Issue
Block a user