mirror of
				https://github.com/boostorg/smart_ptr.git
				synced 2025-10-27 05:41:51 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef BOOST_POINTER_TO_OTHER_HPP_INCLUDED
 | |
| #define BOOST_POINTER_TO_OTHER_HPP_INCLUDED
 | |
| 
 | |
| //
 | |
| //  pointer_to_other.hpp
 | |
| //
 | |
| //  (C) Copyright Ion Gaztañaga 2005.
 | |
| //  Copyright (c) 2005 Peter Dimov.
 | |
| //
 | |
| //  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)
 | |
| //
 | |
| //  See http://www.boost.org/libs/smart_ptr/pointer_to_other.html
 | |
| //
 | |
| 
 | |
| namespace boost
 | |
| {
 | |
| 
 | |
| // Defines the same pointer type (raw or smart) to another pointee type
 | |
| 
 | |
| template<class T, class U>
 | |
| struct pointer_to_other;
 | |
| 
 | |
| template<class T, class U, 
 | |
|          template<class> class Sp>
 | |
| struct pointer_to_other< Sp<T>, U >
 | |
| {
 | |
|    typedef Sp<U> type;
 | |
| };
 | |
| 
 | |
| template<class T, class T2, class U, 
 | |
|          template<class, class> class Sp>
 | |
| struct pointer_to_other< Sp<T, T2>, U >
 | |
| {
 | |
|    typedef Sp<U, T2> type;
 | |
| };
 | |
| 
 | |
| template<class T, class T2, class T3, class U, 
 | |
|          template<class, class, class> class Sp>
 | |
| struct pointer_to_other< Sp<T, T2, T3>, U >
 | |
| {
 | |
|    typedef Sp<U, T2, T3> type;
 | |
| };
 | |
| 
 | |
| template<class T, class U>
 | |
| struct pointer_to_other< T*, U >
 | |
| {
 | |
|    typedef U* type;
 | |
| };
 | |
| 
 | |
| } // namespace boost
 | |
| 
 | |
| #endif // #ifndef BOOST_POINTER_TO_OTHER_HPP_INCLUDED
 |