Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:48:05

0001 /*
0002 Copyright Rene Rivera 2011-2015
0003 Distributed under the Boost Software License, Version 1.0.
0004 (See accompanying file LICENSE_1_0.txt or copy at
0005 http://www.boost.org/LICENSE_1_0.txt)
0006 */
0007 
0008 #ifndef BOOST_PREDEF_LANGUAGE_STDCPP_H
0009 #define BOOST_PREDEF_LANGUAGE_STDCPP_H
0010 
0011 #include <boost/predef/version_number.h>
0012 #include <boost/predef/make.h>
0013 
0014 /* tag::reference[]
0015 = `BOOST_LANG_STDCPP`
0016 
0017 http://en.wikipedia.org/wiki/C%2B%2B[Standard {CPP}] language.
0018 If available, the year of the standard is detected as YYYY.MM.1 from the Epoch date.
0019 Because of the way the {CPP} standardization process works the
0020 defined version year will not be the commonly known year of the standard.
0021 Specifically the defined versions are:
0022 
0023 .Detected Version Number vs. {CPP} Standard Year
0024 [options="header"]
0025 |===
0026 | Detected Version Number | Standard Year | {CPP} Standard
0027 | 27.11.1 | 1998 | ISO/IEC 14882:1998
0028 | 41.3.1 | 2011 | ISO/IEC 14882:2011
0029 | 44.2.1 | 2014 | ISO/IEC 14882:2014
0030 | 47.3.1 | 2017 | ISO/IEC 14882:2017
0031 |===
0032 
0033 [options="header"]
0034 |===
0035 | {predef_symbol} | {predef_version}
0036 
0037 | `+__cplusplus+` | {predef_detection}
0038 
0039 | `+__cplusplus+` | YYYY.MM.1
0040 |===
0041 */ // end::reference[]
0042 
0043 #define BOOST_LANG_STDCPP BOOST_VERSION_NUMBER_NOT_AVAILABLE
0044 
0045 #if defined(__cplusplus)
0046 #   undef BOOST_LANG_STDCPP
0047 #   if (__cplusplus > 100)
0048 #       define BOOST_LANG_STDCPP BOOST_PREDEF_MAKE_YYYYMM(__cplusplus)
0049 #   else
0050 #       define BOOST_LANG_STDCPP BOOST_VERSION_NUMBER_AVAILABLE
0051 #   endif
0052 #endif
0053 
0054 #if BOOST_LANG_STDCPP
0055 #   define BOOST_LANG_STDCPP_AVAILABLE
0056 #endif
0057 
0058 #define BOOST_LANG_STDCPP_NAME "Standard C++"
0059 
0060 /* tag::reference[]
0061 = `BOOST_LANG_STDCPPCLI`
0062 
0063 http://en.wikipedia.org/wiki/C%2B%2B/CLI[Standard {CPP}/CLI] language.
0064 If available, the year of the standard is detected as YYYY.MM.1 from the Epoch date.
0065 
0066 [options="header"]
0067 |===
0068 | {predef_symbol} | {predef_version}
0069 
0070 | `+__cplusplus_cli+` | {predef_detection}
0071 
0072 | `+__cplusplus_cli+` | YYYY.MM.1
0073 |===
0074 */ // end::reference[]
0075 
0076 #define BOOST_LANG_STDCPPCLI BOOST_VERSION_NUMBER_NOT_AVAILABLE
0077 
0078 #if defined(__cplusplus_cli)
0079 #   undef BOOST_LANG_STDCPPCLI
0080 #   if (__cplusplus_cli > 100)
0081 #       define BOOST_LANG_STDCPPCLI BOOST_PREDEF_MAKE_YYYYMM(__cplusplus_cli)
0082 #   else
0083 #       define BOOST_LANG_STDCPPCLI BOOST_VERSION_NUMBER_AVAILABLE
0084 #   endif
0085 #endif
0086 
0087 #if BOOST_LANG_STDCPPCLI
0088 #   define BOOST_LANG_STDCPPCLI_AVAILABLE
0089 #endif
0090 
0091 #define BOOST_LANG_STDCPPCLI_NAME "Standard C++/CLI"
0092 
0093 /* tag::reference[]
0094 = `BOOST_LANG_STDECPP`
0095 
0096 http://en.wikipedia.org/wiki/Embedded_C%2B%2B[Standard Embedded {CPP}] language.
0097 
0098 [options="header"]
0099 |===
0100 | {predef_symbol} | {predef_version}
0101 
0102 | `+__embedded_cplusplus+` | {predef_detection}
0103 |===
0104 */ // end::reference[]
0105 
0106 #define BOOST_LANG_STDECPP BOOST_VERSION_NUMBER_NOT_AVAILABLE
0107 
0108 #if defined(__embedded_cplusplus)
0109 #   undef BOOST_LANG_STDECPP
0110 #   define BOOST_LANG_STDECPP BOOST_VERSION_NUMBER_AVAILABLE
0111 #endif
0112 
0113 #if BOOST_LANG_STDECPP
0114 #   define BOOST_LANG_STDECPP_AVAILABLE
0115 #endif
0116 
0117 #define BOOST_LANG_STDECPP_NAME "Standard Embedded C++"
0118 
0119 #endif
0120 
0121 #include <boost/predef/detail/test.h>
0122 BOOST_PREDEF_DECLARE_TEST(BOOST_LANG_STDCPP,BOOST_LANG_STDCPP_NAME)
0123 
0124 #include <boost/predef/detail/test.h>
0125 BOOST_PREDEF_DECLARE_TEST(BOOST_LANG_STDCPPCLI,BOOST_LANG_STDCPPCLI_NAME)
0126 
0127 #include <boost/predef/detail/test.h>
0128 BOOST_PREDEF_DECLARE_TEST(BOOST_LANG_STDECPP,BOOST_LANG_STDECPP_NAME)