messagepack implementation for embedded systems (mbed / arduino)
Dependents: hello_message_pack
stdcpp.h
00001 /* 00002 Copyright Rene Rivera 2011-2013 00003 Distributed under the Boost Software License, Version 1.0. 00004 (See accompanying file LICENSE_1_0.txt or copy at 00005 http://www.boost.org/LICENSE_1_0.txt) 00006 */ 00007 00008 #ifndef MSGPACK_PREDEF_LANGUAGE_STDCPP_H 00009 #define MSGPACK_PREDEF_LANGUAGE_STDCPP_H 00010 00011 #include <msgpack/predef/version_number.h> 00012 #include <msgpack/predef/make.h> 00013 00014 /*` 00015 [heading `MSGPACK_LANG_STDCPP`] 00016 00017 [@http://en.wikipedia.org/wiki/C%2B%2B Standard C++] language. 00018 If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. 00019 Because of the way the C++ standardization process works the 00020 defined version year will not be the commonly known year of the standard. 00021 Specifically the defined versions are: 00022 00023 [table Detected Version Number vs. C++ Standard Year 00024 [[Detected Version Number] [Standard Year] [C++ Standard]] 00025 [[27.11.1] [1998] [ISO/IEC 14882:1998]] 00026 [[41.12.1] [2011] [ISO/IEC 14882:2011]] 00027 ] 00028 00029 [table 00030 [[__predef_symbol__] [__predef_version__]] 00031 00032 [[`__cplusplus`] [__predef_detection__]] 00033 00034 [[`__cplusplus`] [YYYY.MM.1]] 00035 ] 00036 */ 00037 00038 #define MSGPACK_LANG_STDCPP MSGPACK_VERSION_NUMBER_NOT_AVAILABLE 00039 00040 #if defined(__cplusplus) 00041 # undef MSGPACK_LANG_STDCPP 00042 # if (__cplusplus > 100) 00043 # define MSGPACK_LANG_STDCPP MSGPACK_PREDEF_MAKE_YYYYMM(__cplusplus) 00044 # else 00045 # define MSGPACK_LANG_STDCPP MSGPACK_VERSION_NUMBER_AVAILABLE 00046 # endif 00047 #endif 00048 00049 #if MSGPACK_LANG_STDCPP 00050 # define MSGPACK_LANG_STDCPP_AVAILABLE 00051 #endif 00052 00053 #define MSGPACK_LANG_STDCPP_NAME "Standard C++" 00054 00055 #include <msgpack/predef/detail/test.h> 00056 MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_STDCPP,MSGPACK_LANG_STDCPP_NAME) 00057 00058 00059 /*` 00060 [heading `MSGPACK_LANG_STDCPPCLI`] 00061 00062 [@http://en.wikipedia.org/wiki/C%2B%2B/CLI Standard C++/CLI] language. 00063 If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. 00064 00065 [table 00066 [[__predef_symbol__] [__predef_version__]] 00067 00068 [[`__cplusplus_cli`] [__predef_detection__]] 00069 00070 [[`__cplusplus_cli`] [YYYY.MM.1]] 00071 ] 00072 */ 00073 00074 #define MSGPACK_LANG_STDCPPCLI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE 00075 00076 #if defined(__cplusplus_cli) 00077 # undef MSGPACK_LANG_STDCPPCLI 00078 # if (__cplusplus_cli > 100) 00079 # define MSGPACK_LANG_STDCPPCLI MSGPACK_PREDEF_MAKE_YYYYMM(__cplusplus_cli) 00080 # else 00081 # define MSGPACK_LANG_STDCPPCLI MSGPACK_VERSION_NUMBER_AVAILABLE 00082 # endif 00083 #endif 00084 00085 #if MSGPACK_LANG_STDCPPCLI 00086 # define MSGPACK_LANG_STDCPPCLI_AVAILABLE 00087 #endif 00088 00089 #define MSGPACK_LANG_STDCPPCLI_NAME "Standard C++/CLI" 00090 00091 #include <msgpack/predef/detail/test.h> 00092 MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_STDCPPCLI,MSGPACK_LANG_STDCPPCLI_NAME) 00093 00094 00095 /*` 00096 [heading `MSGPACK_LANG_STDECPP`] 00097 00098 [@http://en.wikipedia.org/wiki/Embedded_C%2B%2B Standard Embedded C++] language. 00099 00100 [table 00101 [[__predef_symbol__] [__predef_version__]] 00102 00103 [[`__embedded_cplusplus`] [__predef_detection__]] 00104 ] 00105 */ 00106 00107 #define MSGPACK_LANG_STDECPP MSGPACK_VERSION_NUMBER_NOT_AVAILABLE 00108 00109 #if defined(__embedded_cplusplus) 00110 # undef MSGPACK_LANG_STDECPP 00111 # define MSGPACK_LANG_STDECPP MSGPACK_VERSION_NUMBER_AVAILABLE 00112 #endif 00113 00114 #if MSGPACK_LANG_STDECPP 00115 # define MSGPACK_LANG_STDECPP_AVAILABLE 00116 #endif 00117 00118 #define MSGPACK_LANG_STDECPP_NAME "Standard Embedded C++" 00119 00120 #include <msgpack/predef/detail/test.h> 00121 MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_STDECPP,MSGPACK_LANG_STDECPP_NAME) 00122 00123 00124 #endif
Generated on Tue Jul 12 2022 22:51:46 by 1.7.2