messagepack implementation for embedded systems (mbed / arduino)

Dependents:   hello_message_pack

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers config.hpp Source File

config.hpp

00001 # /* **************************************************************************
00002 #  *                                                                          *
00003 #  *     (C) Copyright Paul Mensonides 2002-2011.                             *
00004 #  *     (C) Copyright Edward Diener 2011.                                    *
00005 #  *     Distributed under the Boost Software License, Version 1.0. (See      *
00006 #  *     accompanying file LICENSE_1_0.txt or copy at                         *
00007 #  *     http://www.boost.org/LICENSE_1_0.txt)                                *
00008 #  *                                                                          *
00009 #  ************************************************************************** */
00010 #
00011 # /* See http://www.boost.org for most recent version. */
00012 #
00013 # ifndef MSGPACK_PREPROCESSOR_CONFIG_CONFIG_HPP
00014 # define MSGPACK_PREPROCESSOR_CONFIG_CONFIG_HPP
00015 #
00016 # /* MSGPACK_PP_CONFIG_FLAGS */
00017 #
00018 # define MSGPACK_PP_CONFIG_STRICT() 0x0001
00019 # define MSGPACK_PP_CONFIG_IDEAL() 0x0002
00020 #
00021 # define MSGPACK_PP_CONFIG_MSVC() 0x0004
00022 # define MSGPACK_PP_CONFIG_MWCC() 0x0008
00023 # define MSGPACK_PP_CONFIG_BCC() 0x0010
00024 # define MSGPACK_PP_CONFIG_EDG() 0x0020
00025 # define MSGPACK_PP_CONFIG_DMC() 0x0040
00026 #
00027 # ifndef MSGPACK_PP_CONFIG_FLAGS
00028 #    if defined(__GCCXML__)
00029 #        define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT())
00030 #    elif defined(__WAVE__)
00031 #        define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT())
00032 #    elif defined(__MWERKS__) && __MWERKS__ >= 0x3200
00033 #        define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT())
00034 #    elif defined(__EDG__) || defined(__EDG_VERSION__)
00035 #        if defined(_MSC_VER) && (defined(__INTELLISENSE__) || __EDG_VERSION__ >= 308)
00036 #            define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_MSVC())
00037 #        else
00038 #            define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_EDG() | MSGPACK_PP_CONFIG_STRICT())
00039 #        endif
00040 #    elif defined(__MWERKS__)
00041 #        define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_MWCC())
00042 #    elif defined(__DMC__)
00043 #        define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_DMC())
00044 #    elif defined(__BORLANDC__) && __BORLANDC__ >= 0x581
00045 #        define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT())
00046 #    elif defined(__BORLANDC__) || defined(__IBMC__) || defined(__IBMCPP__) || defined(__SUNPRO_CC)
00047 #        define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_BCC())
00048 #    elif defined(_MSC_VER) && !defined(__clang__)
00049 #        define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_MSVC())
00050 #    else
00051 #        define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT())
00052 #    endif
00053 # endif
00054 #
00055 # /* MSGPACK_PP_CONFIG_EXTENDED_LINE_INFO */
00056 #
00057 # ifndef MSGPACK_PP_CONFIG_EXTENDED_LINE_INFO
00058 #    define MSGPACK_PP_CONFIG_EXTENDED_LINE_INFO 0
00059 # endif
00060 #
00061 # /* MSGPACK_PP_CONFIG_ERRORS */
00062 #
00063 # ifndef MSGPACK_PP_CONFIG_ERRORS
00064 #    ifdef NDEBUG
00065 #        define MSGPACK_PP_CONFIG_ERRORS 0
00066 #    else
00067 #        define MSGPACK_PP_CONFIG_ERRORS 1
00068 #    endif
00069 # endif
00070 #
00071 # /* MSGPACK_PP_VARIADICS */
00072 #
00073 # if !defined MSGPACK_PP_VARIADICS
00074 #    /* variadic support explicitly disabled for all untested compilers */
00075 #    if defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC && !defined __EDG__ || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI
00076 #        define MSGPACK_PP_VARIADICS 0
00077 #    /* VC++ (C/C++) */
00078 #    elif defined _MSC_VER && _MSC_VER >= 1400 && (!defined __EDG__ || defined(__INTELLISENSE__)) && !defined __clang__
00079 #        define MSGPACK_PP_VARIADICS 1
00080 #        define MSGPACK_PP_VARIADICS_MSVC 1
00081 #    /* Wave (C/C++), GCC (C++) */
00082 #    elif defined __WAVE__ && __WAVE_HAS_VARIADICS__ || defined __GNUC__ && __GXX_EXPERIMENTAL_CXX0X__
00083 #        define MSGPACK_PP_VARIADICS 1
00084 #    /* EDG-based (C/C++), GCC (C), and unknown (C/C++) */
00085 #    elif !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L
00086 #        define MSGPACK_PP_VARIADICS 1
00087 #    else
00088 #        define MSGPACK_PP_VARIADICS 0
00089 #    endif
00090 # elif !MSGPACK_PP_VARIADICS + 1 < 2
00091 #    undef MSGPACK_PP_VARIADICS
00092 #    define MSGPACK_PP_VARIADICS 1
00093 #    if defined _MSC_VER && _MSC_VER >= 1400 && (defined(__INTELLISENSE__) || !(defined __EDG__ || defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __clang__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI))
00094 #        define MSGPACK_PP_VARIADICS_MSVC 1
00095 #    endif
00096 # else
00097 #    undef MSGPACK_PP_VARIADICS
00098 #    define MSGPACK_PP_VARIADICS 0
00099 # endif
00100 #
00101 # endif