5
5
#include < eigenpy/std-unique-ptr.hpp>
6
6
7
7
#include < memory>
8
+ #include < string>
9
+ #include < complex>
8
10
9
11
namespace bp = boost::python;
10
12
@@ -21,13 +23,26 @@ std::unique_ptr<V1> make_unique_v1() { return std::make_unique<V1>(10); }
21
23
22
24
std::unique_ptr<V1> make_unique_null () { return nullptr ; }
23
25
26
+ std::unique_ptr<std::string> make_unique_str () {
27
+ return std::make_unique<std::string>(" str" );
28
+ }
29
+
30
+ std::unique_ptr<std::complex<double > > make_unique_complex () {
31
+ return std::make_unique<std::complex<double > >(1 ., 0 .);
32
+ }
33
+
24
34
struct UniquePtrHolder {
25
35
UniquePtrHolder ()
26
- : int_ptr(std::make_unique<int >(20 )), v1_ptr(std::make_unique<V1>(200 )) {}
36
+ : int_ptr(std::make_unique<int >(20 )),
37
+ v1_ptr (std::make_unique<V1>(200 )),
38
+ str_ptr(std::make_unique<std::string>(" str" )),
39
+ complex_ptr(std::make_unique<std::complex<double > >(1 ., 0 .)) {}
27
40
28
41
std::unique_ptr<int > int_ptr;
29
42
std::unique_ptr<V1> v1_ptr;
30
43
std::unique_ptr<V1> null_ptr;
44
+ std::unique_ptr<std::string> str_ptr;
45
+ std::unique_ptr<std::complex<double > > complex_ptr;
31
46
};
32
47
33
48
BOOST_PYTHON_MODULE (std_unique_ptr) {
@@ -39,6 +54,8 @@ BOOST_PYTHON_MODULE(std_unique_ptr) {
39
54
bp::def (" make_unique_v1" , make_unique_v1);
40
55
bp::def (" make_unique_null" , make_unique_null,
41
56
eigenpy::StdUniquePtrCallPolicies ());
57
+ bp::def (" make_unique_str" , make_unique_str);
58
+ bp::def (" make_unique_complex" , make_unique_complex);
42
59
43
60
boost::python::class_<UniquePtrHolder, boost::noncopyable>(" UniquePtrHolder" ,
44
61
bp::init<>())
@@ -50,5 +67,11 @@ BOOST_PYTHON_MODULE(std_unique_ptr) {
50
67
eigenpy::ReturnInternalStdUniquePtr ()))
51
68
.add_property (" null_ptr" ,
52
69
bp::make_getter (&UniquePtrHolder::null_ptr,
70
+ eigenpy::ReturnInternalStdUniquePtr ()))
71
+ .add_property (" str_ptr" ,
72
+ bp::make_getter (&UniquePtrHolder::str_ptr,
73
+ eigenpy::ReturnInternalStdUniquePtr ()))
74
+ .add_property (" complex_ptr" ,
75
+ bp::make_getter (&UniquePtrHolder::complex_ptr,
53
76
eigenpy::ReturnInternalStdUniquePtr ()));
54
77
}
0 commit comments