/usr/include/boost/python/converter
Edit: /usr/include/boost/python/converter/shared_ptr_to_python.hpp (1353B)
// Copyright David Abrahams 2003.
// 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_to_python_hpp_
#define boost_python_converter_shared_ptr_to_python_hpp_
#include
#include
#include
#include
namespace boost { namespace python { namespace converter {
template
PyObject* shared_ptr_to_python(shared_ptr const& x)
{
if (!x)
return python::detail::none();
else if (shared_ptr_deleter* d = boost::get_deleter(x))
return incref( get_pointer( d->owner ) );
else
return converter::registered const&>::converters.to_python(&x);
}
#if !defined(BOOST_NO_CXX11_SMART_PTR)
template
PyObject* shared_ptr_to_python(std::shared_ptr const& x)
{
if (!x)
return python::detail::none();
else if (shared_ptr_deleter* d = std::get_deleter(x))
return incref(get_pointer(d->owner));
else
return converter::registered const&>::converters.to_python(&x);
}
#endif
}}} // namespace boost::python::converter
#endif