42 lines
		
	
	
		
			998 B
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			998 B
		
	
	
	
		
			C++
		
	
	
	
	
	
|   | // Copyright (C) 2003, Fernando Luis Cacciola Carballal.
 | ||
|  | // Copyright (C) 2014, 2015 Andrzej Krzemienski.
 | ||
|  | //
 | ||
|  | // Use, modification, and distribution is subject to 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/optional for documentation.
 | ||
|  | //
 | ||
|  | // You are welcome to contact the author at:
 | ||
|  | //  fernando_cacciola@hotmail.com
 | ||
|  | //
 | ||
|  | #ifndef BOOST_NONE_T_17SEP2003_HPP
 | ||
|  | #define BOOST_NONE_T_17SEP2003_HPP
 | ||
|  | 
 | ||
|  | #include <boost/config.hpp>
 | ||
|  | 
 | ||
|  | namespace boost { | ||
|  | 
 | ||
|  | #ifdef BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
 | ||
|  | 
 | ||
|  | namespace detail { struct none_helper{}; } | ||
|  | typedef int detail::none_helper::*none_t ; | ||
|  | 
 | ||
|  | #elif defined BOOST_OPTIONAL_USE_SINGLETON_DEFINITION_OF_NONE
 | ||
|  | 
 | ||
|  | class none_t {}; | ||
|  | 
 | ||
|  | #else
 | ||
|  | 
 | ||
|  | struct none_t | ||
|  | { | ||
|  |   struct init_tag{}; | ||
|  |   explicit BOOST_CONSTEXPR none_t(init_tag){} // to disable default constructor
 | ||
|  | }; | ||
|  | 
 | ||
|  | #endif // old implementation workarounds
 | ||
|  | 
 | ||
|  | } // namespace boost
 | ||
|  | 
 | ||
|  | #endif // header guard
 |