28 lines
		
	
	
		
			976 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			28 lines
		
	
	
		
			976 B
		
	
	
	
		
			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 DEPENDENT_DWA200286_HPP | ||
|  | # define DEPENDENT_DWA200286_HPP | ||
|  | 
 | ||
|  | namespace boost { namespace python { namespace detail {  | ||
|  | 
 | ||
|  | // A way to turn a concrete type T into a type dependent on U. This | ||
|  | // keeps conforming compilers (those implementing proper 2-phase | ||
|  | // name lookup for templates) from complaining about incomplete | ||
|  | // types in situations where it would otherwise be inconvenient or | ||
|  | // impossible to re-order code so that all types are defined in time. | ||
|  | 
 | ||
|  | // One such use is when we must return an incomplete T from a member | ||
|  | // function template (which must be defined in the class body to | ||
|  | // keep MSVC happy). | ||
|  | template <class T, class U> | ||
|  | struct dependent | ||
|  | { | ||
|  |     typedef T type; | ||
|  | }; | ||
|  | 
 | ||
|  | }}} // namespace boost::python::detail | ||
|  | 
 | ||
|  | #endif // DEPENDENT_DWA200286_HPP |