55#include < eigenpy/std-unique-ptr.hpp>
66
77#include < memory>
8+ #include < string>
9+ #include < complex>
810
911namespace bp = boost::python;
1012
@@ -21,13 +23,26 @@ std::unique_ptr<V1> make_unique_v1() { return std::make_unique<V1>(10); }
2123
2224std::unique_ptr<V1> make_unique_null () { return nullptr ; }
2325
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+
2434struct UniquePtrHolder {
2535 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 .)) {}
2740
2841 std::unique_ptr<int > int_ptr;
2942 std::unique_ptr<V1> v1_ptr;
3043 std::unique_ptr<V1> null_ptr;
44+ std::unique_ptr<std::string> str_ptr;
45+ std::unique_ptr<std::complex <double > > complex_ptr;
3146};
3247
3348BOOST_PYTHON_MODULE (std_unique_ptr) {
@@ -39,6 +54,8 @@ BOOST_PYTHON_MODULE(std_unique_ptr) {
3954 bp::def (" make_unique_v1" , make_unique_v1);
4055 bp::def (" make_unique_null" , make_unique_null,
4156 eigenpy::StdUniquePtrCallPolicies ());
57+ bp::def (" make_unique_str" , make_unique_str);
58+ bp::def (" make_unique_complex" , make_unique_complex);
4259
4360 boost::python::class_<UniquePtrHolder, boost::noncopyable>(" UniquePtrHolder" ,
4461 bp::init<>())
@@ -50,5 +67,11 @@ BOOST_PYTHON_MODULE(std_unique_ptr) {
5067 eigenpy::ReturnInternalStdUniquePtr ()))
5168 .add_property (" null_ptr" ,
5269 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,
5376 eigenpy::ReturnInternalStdUniquePtr ()));
5477}
0 commit comments