adding stl_binders

This commit is contained in:
Sergey Lyskov
2016-05-07 00:26:19 -04:00
committed by Wenzel Jakob
parent 178c8a899d
commit eae7744c0e
6 changed files with 240 additions and 0 deletions

View File

@@ -25,6 +25,7 @@ void init_ex13(py::module &);
void init_ex14(py::module &);
void init_ex15(py::module &);
void init_ex16(py::module &);
void init_ex17(py::module &);
void init_issues(py::module &);
#if defined(PYBIND11_TEST_EIGEN)
@@ -50,6 +51,7 @@ PYBIND11_PLUGIN(example) {
init_ex14(m);
init_ex15(m);
init_ex16(m);
init_ex17(m);
init_issues(m);
#if defined(PYBIND11_TEST_EIGEN)

27
example/example17.cpp Normal file
View File

@@ -0,0 +1,27 @@
/*
example/example17.cpp -- Usade of stl_binders functions
Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>
All rights reserved. Use of this source code is governed by a
BSD-style license that can be found in the LICENSE file.
*/
#include "example.h"
#include <pybind11/stl_binders.h>
class A
{
public:
A() = delete;
};
void init_ex17(py::module &m)
{
pybind11::class_<A>(m, "A");
py::vector_binder<int>(m, "VectorInt");
py::vector_binder<A>(m, "VectorA");
}

21
example/example17.py Normal file
View File

@@ -0,0 +1,21 @@
#!/usr/bin/env python
from __future__ import print_function
from example import VectorInt, VectorA
v_int = VectorInt(2)
print( v_int.size() )
print( bool(v_int) )
v_int2 = VectorInt(2)
print( v_int == v_int2 )
v_int2[1] = 1
print( v_int != v_int2 )
v_int2.push_back(2)
v_int2.push_back(3)
print(v_int2)
v_a = VectorA()

5
example/example17.ref Normal file
View File

@@ -0,0 +1,5 @@
2
True
True
True
VectorInt[0, 1, 2, 3]