/
usr
/
include
/
boost
/
python
/
converter
/
/usr/include/boost/python/converter
mkdir
upload
Name
Size
Mode
Actions
arg_from_python.hpp
9203
0644
edit
dl
rm
arg_to_python.hpp
7397
0644
edit
dl
rm
arg_to_python_base.hpp
648
0644
edit
dl
rm
as_to_python_function.hpp
2167
0644
edit
dl
rm
builtin_converters.hpp
8801
0644
edit
dl
rm
constructor_function.hpp
659
0644
edit
dl
rm
context_result_converter.hpp
623
0644
edit
dl
rm
convertible_function.hpp
482
0644
edit
dl
rm
from_python.hpp
1505
0644
edit
dl
rm
implicit.hpp
1526
0644
edit
dl
rm
object_manager.hpp
4349
0644
edit
dl
rm
obj_mgr_arg_from_python.hpp
3732
0644
edit
dl
rm
pointer_type_id.hpp
1667
0644
edit
dl
rm
pyobject_traits.hpp
1433
0644
edit
dl
rm
pyobject_type.hpp
1158
0644
edit
dl
rm
pytype_function.hpp
3249
0644
edit
dl
rm
pytype_object_mgr_traits.hpp
1442
0644
edit
dl
rm
registered.hpp
2964
0644
edit
dl
rm
registered_pointee.hpp
938
0644
edit
dl
rm
registrations.hpp
3014
0644
edit
dl
rm
registry.hpp
2015
0644
edit
dl
rm
return_from_python.hpp
4270
0644
edit
dl
rm
rvalue_from_python_data.hpp
5943
0644
edit
dl
rm
shared_ptr_deleter.hpp
605
0644
edit
dl
rm
shared_ptr_from_python.hpp
1935
0644
edit
dl
rm
shared_ptr_to_python.hpp
1353
0644
edit
dl
rm
to_python_function_type.hpp
764
0644
edit
dl
rm
Edit:
/usr/include/boost/python/converter/shared_ptr_from_python.hpp
(1935B)
// Copyright David Abrahams 2002. // Copyright Stefan Seefeld 2016. // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #ifndef boost_python_converter_shared_ptr_from_python_hpp_ #define boost_python_converter_shared_ptr_from_python_hpp_ #include <boost/python/handle.hpp> #include <boost/python/converter/shared_ptr_deleter.hpp> #include <boost/python/converter/from_python.hpp> #include <boost/python/converter/rvalue_from_python_data.hpp> #include <boost/python/converter/registered.hpp> #ifndef BOOST_PYTHON_NO_PY_SIGNATURES # include <boost/python/converter/pytype_function.hpp> #endif #include <boost/shared_ptr.hpp> #include <memory> namespace boost { namespace python { namespace converter { template <class T, template <typename> class SP> struct shared_ptr_from_python { shared_ptr_from_python() { converter::registry::insert(&convertible, &construct, type_id<SP<T> >() #ifndef BOOST_PYTHON_NO_PY_SIGNATURES , &converter::expected_from_python_type_direct<T>::get_pytype #endif ); } private: static void* convertible(PyObject* p) { if (p == Py_None) return p; return converter::get_lvalue_from_python(p, registered<T>::converters); } static void construct(PyObject* source, rvalue_from_python_stage1_data* data) { void* const storage = ((converter::rvalue_from_python_storage<SP<T> >*)data)->storage.bytes; // Deal with the "None" case. if (data->convertible == source) new (storage) SP<T>(); else { SP<void> hold_convertible_ref_count( (void*)0, shared_ptr_deleter(handle<>(borrowed(source))) ); // use aliasing constructor new (storage) SP<T>(hold_convertible_ref_count, static_cast<T*>(data->convertible)); } data->convertible = storage; } }; }}} // namespace boost::python::converter #endif
Save
cmd:
run