37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| // Copyright David Abrahams 2006. 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 BOOST_CONCEPT_USAGE_DWA2006919_HPP
 | |
| # define BOOST_CONCEPT_USAGE_DWA2006919_HPP
 | |
| 
 | |
| # include <boost/concept/assert.hpp>
 | |
| # include <boost/detail/workaround.hpp>
 | |
| # include <boost/concept/detail/backward_compatibility.hpp>
 | |
| 
 | |
| namespace boost { namespace concepts { 
 | |
| 
 | |
| template <class Model>
 | |
| struct usage_requirements
 | |
| {
 | |
|     ~usage_requirements() { ((Model*)0)->~Model(); }
 | |
| };
 | |
| 
 | |
| #  if BOOST_WORKAROUND(__GNUC__, <= 3)
 | |
| 
 | |
| #   define BOOST_CONCEPT_USAGE(model)                                    \
 | |
|       model(); /* at least 2.96 and 3.4.3 both need this :( */           \
 | |
|       BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \
 | |
|       ~model()
 | |
| 
 | |
| #  else
 | |
| 
 | |
| #   define BOOST_CONCEPT_USAGE(model)                                    \
 | |
|       BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \
 | |
|       ~model()
 | |
| 
 | |
| #  endif
 | |
| 
 | |
| }} // namespace boost::concepts
 | |
| 
 | |
| #endif // BOOST_CONCEPT_USAGE_DWA2006919_HPP
 | 
