69 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			69 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								// 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_non_null_reference call(object const&);
							 | 
						||
| 
								 | 
							
								      static detail::new_non_null_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
							 |