Blame view

3rdparty/boost_1_81_0/boost/python/long.hpp 1.58 KB
dbf9e800   Hu Chunming   提交_GLIBCXX_USE_CX...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
  // Copyright David Abrahams 2002.
  // 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 LONG_DWA2002627_HPP
  # define LONG_DWA2002627_HPP
  
  # include <boost/python/detail/prefix.hpp>
  
  # include <boost/python/object.hpp>
  # include <boost/python/converter/pytype_object_mgr_traits.hpp>
  
  namespace boost { namespace python { 
  
  namespace detail
  {
    struct BOOST_PYTHON_DECL long_base : object
    {
     protected:
        long_base(); // new long_
        explicit long_base(object_cref rhs);
        explicit long_base(object_cref rhs, object_cref base);
        
        BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS(long_base, object)
            
     private:
        static detail::new_reference call(object const&);
        static detail::new_reference call(object const&, object const&);
    };
  }
  
  class long_ : public detail::long_base
  {
      typedef detail::long_base base;
   public:
      long_() {} // new long_
  
      template <class T>
      explicit long_(T const& rhs)
          : detail::long_base(object(rhs))
      {
      }
  
      template <class T, class U>
      explicit long_(T const& rhs, U const& base)
          : detail::long_base(object(rhs), object(base))
      {
      }
      
   public: // implementation detail -- for internal use only
      BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS(long_, base)
  };
  
  //
  // Converter Specializations
  //
  namespace converter
  {
    template <>
    struct object_manager_traits<long_>
        : pytype_object_manager_traits<&PyLong_Type,long_>
    {
    };
  }
  
  }} // namespace boost::python
  
  #endif // LONG_DWA2002627_HPP