Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/boost/python/copy_non_const_reference.hpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 // Copyright David Abrahams 2002.
0002 // Distributed under the Boost Software License, Version 1.0. (See
0003 // accompanying file LICENSE_1_0.txt or copy at
0004 // http://www.boost.org/LICENSE_1_0.txt)
0005 #ifndef COPY_NON_CONST_REFERENCE_DWA2002131_HPP
0006 # define COPY_NON_CONST_REFERENCE_DWA2002131_HPP
0007 
0008 # include <boost/python/detail/prefix.hpp>
0009 # include <boost/python/detail/indirect_traits.hpp>
0010 # include <boost/mpl/if.hpp>
0011 # include <boost/python/to_python_value.hpp>
0012 
0013 namespace boost { namespace python { 
0014 
0015 namespace detail
0016 {
0017   template <class R>
0018   struct copy_non_const_reference_expects_a_non_const_reference_return_type
0019 # if defined(__GNUC__) || defined(__EDG__)
0020   {}
0021 # endif
0022   ;
0023 }
0024 
0025 template <class T> struct to_python_value;
0026 
0027 struct copy_non_const_reference
0028 {
0029     template <class T>
0030     struct apply
0031     {
0032         typedef typename mpl::if_c<
0033             indirect_traits::is_reference_to_non_const<T>::value
0034             , to_python_value<T>
0035             , detail::copy_non_const_reference_expects_a_non_const_reference_return_type<T>
0036         >::type type;
0037     };
0038 };
0039 
0040 
0041 }} // namespace boost::python
0042 
0043 #endif // COPY_NON_CONST_REFERENCE_DWA2002131_HPP