Sergey Lyskov | eae7744 | 2016-05-07 00:26:19 -0400 | [diff] [blame] | 1 | /* |
Sergey Lyskov | a95bde1 | 2016-05-08 19:31:55 -0400 | [diff] [blame] | 2 | example/example17.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 | |
Sergey Lyskov | a95bde1 | 2016-05-08 19:31:55 -0400 | [diff] [blame] | 27 | void init_ex17(py::module &m) { |
Wenzel Jakob | 25c03ce | 2016-05-15 20:50:38 +0200 | [diff] [blame] | 28 | pybind11::class_<El>(m, "El") |
Sergey Lyskov | a95bde1 | 2016-05-08 19:31:55 -0400 | [diff] [blame] | 29 | .def(pybind11::init<int>()); |
30 | |||||
Wenzel Jakob | 00c7d6c | 2016-05-16 12:14:25 +0200 | [diff] [blame] | 31 | pybind11::bind_vector<unsigned int>(m, "VectorInt"); |
Sergey Lyskov | a95bde1 | 2016-05-08 19:31:55 -0400 | [diff] [blame] | 32 | |
Wenzel Jakob | 25c03ce | 2016-05-15 20:50:38 +0200 | [diff] [blame] | 33 | pybind11::bind_vector<El>(m, "VectorEl"); |
34 | |||||
35 | pybind11::bind_vector<std::vector<El>>(m, "VectorVectorEl"); | ||||
Sergey Lyskov | eae7744 | 2016-05-07 00:26:19 -0400 | [diff] [blame] | 36 | } |