122 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			122 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | /* | ||
|  | Copyright Rene Rivera 2011-2015 | ||
|  | 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_PREDEF_LANGUAGE_STDCPP_H | ||
|  | #define BOOST_PREDEF_LANGUAGE_STDCPP_H | ||
|  | 
 | ||
|  | #include <boost/predef/version_number.h> | ||
|  | #include <boost/predef/make.h> | ||
|  | 
 | ||
|  | /*` | ||
|  | [heading `BOOST_LANG_STDCPP`] | ||
|  | 
 | ||
|  | [@http://en.wikipedia.org/wiki/C%2B%2B Standard C++] language. | ||
|  | If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. | ||
|  | Because of the way the C++ standardization process works the | ||
|  | defined version year will not be the commonly known year of the standard. | ||
|  | Specifically the defined versions are: | ||
|  | 
 | ||
|  | [table Detected Version Number vs. C++ Standard Year | ||
|  |   [[Detected Version Number] [Standard Year] [C++ Standard]] | ||
|  |   [[27.11.1] [1998] [ISO/IEC 14882:1998]] | ||
|  |   [[41.12.1] [2011] [ISO/IEC 14882:2011]] | ||
|  | ] | ||
|  | 
 | ||
|  | [table | ||
|  |     [[__predef_symbol__] [__predef_version__]] | ||
|  | 
 | ||
|  |     [[`__cplusplus`] [__predef_detection__]] | ||
|  | 
 | ||
|  |     [[`__cplusplus`] [YYYY.MM.1]] | ||
|  |     ] | ||
|  |  */ | ||
|  | 
 | ||
|  | #define BOOST_LANG_STDCPP BOOST_VERSION_NUMBER_NOT_AVAILABLE | ||
|  | 
 | ||
|  | #if defined(__cplusplus) | ||
|  | #   undef BOOST_LANG_STDCPP | ||
|  | #   if (__cplusplus > 100) | ||
|  | #       define BOOST_LANG_STDCPP BOOST_PREDEF_MAKE_YYYYMM(__cplusplus) | ||
|  | #   else | ||
|  | #       define BOOST_LANG_STDCPP BOOST_VERSION_NUMBER_AVAILABLE | ||
|  | #   endif | ||
|  | #endif | ||
|  | 
 | ||
|  | #if BOOST_LANG_STDCPP | ||
|  | #   define BOOST_LANG_STDCPP_AVAILABLE | ||
|  | #endif | ||
|  | 
 | ||
|  | #define BOOST_LANG_STDCPP_NAME "Standard C++" | ||
|  | 
 | ||
|  | /*` | ||
|  | [heading `BOOST_LANG_STDCPPCLI`] | ||
|  | 
 | ||
|  | [@http://en.wikipedia.org/wiki/C%2B%2B/CLI Standard C++/CLI] language. | ||
|  | If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. | ||
|  | 
 | ||
|  | [table | ||
|  |     [[__predef_symbol__] [__predef_version__]] | ||
|  | 
 | ||
|  |     [[`__cplusplus_cli`] [__predef_detection__]] | ||
|  | 
 | ||
|  |     [[`__cplusplus_cli`] [YYYY.MM.1]] | ||
|  |     ] | ||
|  |  */ | ||
|  | 
 | ||
|  | #define BOOST_LANG_STDCPPCLI BOOST_VERSION_NUMBER_NOT_AVAILABLE | ||
|  | 
 | ||
|  | #if defined(__cplusplus_cli) | ||
|  | #   undef BOOST_LANG_STDCPPCLI | ||
|  | #   if (__cplusplus_cli > 100) | ||
|  | #       define BOOST_LANG_STDCPPCLI BOOST_PREDEF_MAKE_YYYYMM(__cplusplus_cli) | ||
|  | #   else | ||
|  | #       define BOOST_LANG_STDCPPCLI BOOST_VERSION_NUMBER_AVAILABLE | ||
|  | #   endif | ||
|  | #endif | ||
|  | 
 | ||
|  | #if BOOST_LANG_STDCPPCLI | ||
|  | #   define BOOST_LANG_STDCPPCLI_AVAILABLE | ||
|  | #endif | ||
|  | 
 | ||
|  | #define BOOST_LANG_STDCPPCLI_NAME "Standard C++/CLI" | ||
|  | 
 | ||
|  | /*` | ||
|  | [heading `BOOST_LANG_STDECPP`] | ||
|  | 
 | ||
|  | [@http://en.wikipedia.org/wiki/Embedded_C%2B%2B Standard Embedded C++] language. | ||
|  | 
 | ||
|  | [table | ||
|  |     [[__predef_symbol__] [__predef_version__]] | ||
|  | 
 | ||
|  |     [[`__embedded_cplusplus`] [__predef_detection__]] | ||
|  |     ] | ||
|  |  */ | ||
|  | 
 | ||
|  | #define BOOST_LANG_STDECPP BOOST_VERSION_NUMBER_NOT_AVAILABLE | ||
|  | 
 | ||
|  | #if defined(__embedded_cplusplus) | ||
|  | #   undef BOOST_LANG_STDECPP | ||
|  | #   define BOOST_LANG_STDECPP BOOST_VERSION_NUMBER_AVAILABLE | ||
|  | #endif | ||
|  | 
 | ||
|  | #if BOOST_LANG_STDECPP | ||
|  | #   define BOOST_LANG_STDECPP_AVAILABLE | ||
|  | #endif | ||
|  | 
 | ||
|  | #define BOOST_LANG_STDECPP_NAME "Standard Embedded C++" | ||
|  | 
 | ||
|  | #endif | ||
|  | 
 | ||
|  | #include <boost/predef/detail/test.h> | ||
|  | BOOST_PREDEF_DECLARE_TEST(BOOST_LANG_STDCPP,BOOST_LANG_STDCPP_NAME) | ||
|  | 
 | ||
|  | #include <boost/predef/detail/test.h> | ||
|  | BOOST_PREDEF_DECLARE_TEST(BOOST_LANG_STDCPPCLI,BOOST_LANG_STDCPPCLI_NAME) | ||
|  | 
 | ||
|  | #include <boost/predef/detail/test.h> | ||
|  | BOOST_PREDEF_DECLARE_TEST(BOOST_LANG_STDECPP,BOOST_LANG_STDECPP_NAME) |