Sergey Lyskov | eae7744 | 2016-05-07 00:26:19 -0400 | [diff] [blame] | 1 | /* |
Jason Rhinelander | b3f3d79 | 2016-07-18 16:43:18 -0400 | [diff] [blame] | 2 | example/example-stl-binder-vector.cpp -- Usage of stl_binders functions |
Sergey Lyskov | eae7744 | 2016-05-07 00:26:19 -0400 | [diff] [blame] | 3 | |
Wenzel Jakob | 25c03ce | 2016-05-15 20:50:38 +0200 | [diff] [blame] | 4 | Copyright (c) 2016 Sergey Lyskov |
Sergey Lyskov | eae7744 | 2016-05-07 00:26:19 -0400 | [diff] [blame] | 5 | |
6 | All rights reserved. Use of this source code is governed by a | ||||
7 | BSD-style license that can be found in the LICENSE file. | ||||
8 | */ | ||||
9 | |||||
10 | #include "example.h" | ||||
11 | |||||
Wenzel Jakob | 25c03ce | 2016-05-15 20:50:38 +0200 | [diff] [blame] | 12 | #include <pybind11/stl_bind.h> |
Sergey Lyskov | eae7744 | 2016-05-07 00:26:19 -0400 | [diff] [blame] | 13 | |
Wenzel Jakob | 25c03ce | 2016-05-15 20:50:38 +0200 | [diff] [blame] | 14 | class El { |
Sergey Lyskov | eae7744 | 2016-05-07 00:26:19 -0400 | [diff] [blame] | 15 | public: |
Wenzel Jakob | 25c03ce | 2016-05-15 20:50:38 +0200 | [diff] [blame] | 16 | El() = delete; |
17 | El(int v) : a(v) { } | ||||
Sergey Lyskov | a95bde1 | 2016-05-08 19:31:55 -0400 | [diff] [blame] | 18 | |
19 | int a; | ||||
Sergey Lyskov | eae7744 | 2016-05-07 00:26:19 -0400 | [diff] [blame] | 20 | }; |
21 | |||||
Wenzel Jakob | 25c03ce | 2016-05-15 20:50:38 +0200 | [diff] [blame] | 22 | std::ostream & operator<<(std::ostream &s, El const&v) { |
23 | s << "El{" << v.a << '}'; | ||||
Sergey Lyskov | a95bde1 | 2016-05-08 19:31:55 -0400 | [diff] [blame] | 24 | return s; |
25 | } | ||||
Sergey Lyskov | eae7744 | 2016-05-07 00:26:19 -0400 | [diff] [blame] | 26 | |
Jason Rhinelander | b3f3d79 | 2016-07-18 16:43:18 -0400 | [diff] [blame] | 27 | void init_ex_stl_binder_vector(py::module &m) { |
Wenzel Jakob | a975ab2 | 2016-07-19 17:35:09 +0200 | [diff] [blame] | 28 | py::class_<El>(m, "El") |
29 | .def(py::init<int>()); | ||||
Sergey Lyskov | a95bde1 | 2016-05-08 19:31:55 -0400 | [diff] [blame] | 30 | |
Wenzel Jakob | a975ab2 | 2016-07-19 17:35:09 +0200 | [diff] [blame] | 31 | py::bind_vector<unsigned int>(m, "VectorInt"); |
32 | py::bind_vector<bool>(m, "VectorBool"); | ||||
Sergey Lyskov | a95bde1 | 2016-05-08 19:31:55 -0400 | [diff] [blame] | 33 | |
Wenzel Jakob | a975ab2 | 2016-07-19 17:35:09 +0200 | [diff] [blame] | 34 | py::bind_vector<El>(m, "VectorEl"); |
Wenzel Jakob | 25c03ce | 2016-05-15 20:50:38 +0200 | [diff] [blame] | 35 | |
Wenzel Jakob | a975ab2 | 2016-07-19 17:35:09 +0200 | [diff] [blame] | 36 | py::bind_vector<std::vector<El>>(m, "VectorVectorEl"); |
Sergey Lyskov | eae7744 | 2016-05-07 00:26:19 -0400 | [diff] [blame] | 37 | } |