/usr/include/boost/python/object
NameSizeModeActions
add_to_namespace.hpp7800644editdlrm
class.hpp21120644editdlrm
class_detail.hpp6340644editdlrm
class_metadata.hpp90960644editdlrm
class_wrapper.hpp16160644editdlrm
enum_base.hpp10950644editdlrm
find_instance.hpp8440644editdlrm
forward.hpp22970644editdlrm
function.hpp22590644editdlrm
function_doc_signature.hpp15140644editdlrm
function_handle.hpp14390644editdlrm
function_object.hpp14180644editdlrm
inheritance.hpp35420644editdlrm
inheritance_query.hpp6170644editdlrm
instance.hpp12820644editdlrm
iterator.hpp71390644editdlrm
iterator_core.hpp5450644editdlrm
life_support.hpp5300644editdlrm
make_holder.hpp35260644editdlrm
make_instance.hpp25010644editdlrm
make_ptr_instance.hpp22920644editdlrm
pickle_support.hpp31850644editdlrm
pointer_holder.hpp65230644editdlrm
py_function.hpp45090644editdlrm
stl_iterator_core.hpp8510644editdlrm
value_holder.hpp50080644editdlrm
value_holder_fwd.hpp5220644editdlrm
Edit: /usr/include/boost/python/object/forward.hpp (2297B)
// Copyright David Abrahams 2001. // 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 FORWARD_DWA20011215_HPP # define FORWARD_DWA20011215_HPP # include # include # include # include # include # include namespace boost { namespace python { namespace objects { // Very much like boost::reference_wrapper, except that in this // case T can be a reference already without causing a // reference-to-reference error. template struct reference_to_value { typedef typename boost::python::detail::add_lvalue_reference::type>::type reference; reference_to_value(reference x) : m_value(x) {} reference get() const { return m_value; } private: reference m_value; }; // A little metaprogram which selects the type to pass through an // intermediate forwarding function when the destination argument type // is T. template struct forward : mpl::if_< mpl::or_, boost::python::detail::is_scalar > , T , reference_to_value > { }; template struct unforward { typedef typename unwrap_reference::type& type; }; template struct unforward > { typedef T type; }; template struct unforward_cref : python::detail::value_arg< typename unwrap_reference::type > { }; template struct unforward_cref > : boost::python::detail::add_lvalue_reference::type> { }; template typename reference_to_value::reference do_unforward(reference_to_value const& x, int) { return x.get(); } template typename reference_wrapper::type& do_unforward(reference_wrapper const& x, int) { return x.get(); } template T const& do_unforward(T const& x, ...) { return x; } }}} // namespace boost::python::objects #endif // FORWARD_DWA20011215_HPP