messagepack implementation for embedded systems (mbed / arduino)

Dependents:   hello_message_pack

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers stdcpp.h Source File

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