Dependents:   hello_message_pack

msgpack-c & msgpack-c++ https://github.com/msgpack/msgpack-c implementation for embedded systems (mbed / Arduino)

Committer:
hideakitai
Date:
Mon Feb 22 01:43:48 2016 +0000
Revision:
4:bd0c06dd6e92
Parent:
0:3f9dbf1e2cb0
fix throw error

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hideakitai 0:3f9dbf1e2cb0 1 /*
hideakitai 0:3f9dbf1e2cb0 2 * MessagePack for C++ version switcher
hideakitai 0:3f9dbf1e2cb0 3 *
hideakitai 0:3f9dbf1e2cb0 4 * Copyright (C) 2014 KONDO Takatoshi
hideakitai 0:3f9dbf1e2cb0 5 *
hideakitai 0:3f9dbf1e2cb0 6 * Distributed under the Boost Software License, Version 1.0.
hideakitai 0:3f9dbf1e2cb0 7 * (See accompanying file LICENSE_1_0.txt or copy at
hideakitai 0:3f9dbf1e2cb0 8 * http://www.boost.org/LICENSE_1_0.txt)
hideakitai 0:3f9dbf1e2cb0 9 */
hideakitai 0:3f9dbf1e2cb0 10 #ifndef MSGPACK_VERSIONING_HPP
hideakitai 0:3f9dbf1e2cb0 11 #define MSGPACK_VERSIONING_HPP
hideakitai 0:3f9dbf1e2cb0 12
hideakitai 0:3f9dbf1e2cb0 13 #if !defined(MSGPACK_DEFAULT_API_VERSION)
hideakitai 0:3f9dbf1e2cb0 14 #define MSGPACK_DEFAULT_API_VERSION 1
hideakitai 0:3f9dbf1e2cb0 15 #endif
hideakitai 0:3f9dbf1e2cb0 16
hideakitai 0:3f9dbf1e2cb0 17 #define MSGPACK_DEFAULT_API_NS MSGPACK_DETAIL_PP_CAT(v, MSGPACK_DEFAULT_API_VERSION)
hideakitai 0:3f9dbf1e2cb0 18
hideakitai 0:3f9dbf1e2cb0 19 #if MSGPACK_DEFAULT_API_VERSION == 1
hideakitai 0:3f9dbf1e2cb0 20 #define MSGPACK_DETAIL_PP_ENABLE_NS_v1 ()
hideakitai 0:3f9dbf1e2cb0 21 //#elif MSGPACK_DEFAULT_API_VERSION == 2
hideakitai 0:3f9dbf1e2cb0 22 //#define MSGPACK_DETAIL_PP_ENABLE_NS_v2 ()
hideakitai 0:3f9dbf1e2cb0 23 #else
hideakitai 0:3f9dbf1e2cb0 24 #error
hideakitai 0:3f9dbf1e2cb0 25 #endif
hideakitai 0:3f9dbf1e2cb0 26
hideakitai 0:3f9dbf1e2cb0 27 #define MSGPACK_DETAIL_PP_CAT(a, ...) MSGPACK_DETAIL_PP_PRIMITIVE_CAT(a, __VA_ARGS__)
hideakitai 0:3f9dbf1e2cb0 28 #define MSGPACK_DETAIL_PP_PRIMITIVE_CAT(a, ...) a ## __VA_ARGS__
hideakitai 0:3f9dbf1e2cb0 29
hideakitai 0:3f9dbf1e2cb0 30 #define MSGPACK_DETAIL_PP_IIF(c) MSGPACK_DETAIL_PP_PRIMITIVE_CAT(MSGPACK_DETAIL_PP_IIF_, c)
hideakitai 0:3f9dbf1e2cb0 31 #define MSGPACK_DETAIL_PP_IIF_0(t, ...) __VA_ARGS__
hideakitai 0:3f9dbf1e2cb0 32 #define MSGPACK_DETAIL_PP_IIF_1(t, ...) t
hideakitai 0:3f9dbf1e2cb0 33
hideakitai 0:3f9dbf1e2cb0 34 #define MSGPACK_DETAIL_PP_PROBE(x) x, 1
hideakitai 0:3f9dbf1e2cb0 35
hideakitai 0:3f9dbf1e2cb0 36 #if defined(_MSC_VER)
hideakitai 0:3f9dbf1e2cb0 37
hideakitai 0:3f9dbf1e2cb0 38 #define MSGPACK_DETAIL_PP_MSVC_VA_ARGS_WORKAROUND(define, args) define args
hideakitai 0:3f9dbf1e2cb0 39 #define MSGPACK_DETAIL_PP_CHECK(...) MSGPACK_DETAIL_PP_MSVC_VA_ARGS_WORKAROUND(MSGPACK_DETAIL_PP_CHECK_N, (__VA_ARGS__, 0))
hideakitai 0:3f9dbf1e2cb0 40 #define MSGPACK_DETAIL_PP_CHECK_N(x, n, ...) n
hideakitai 0:3f9dbf1e2cb0 41
hideakitai 0:3f9dbf1e2cb0 42 #else // defined(__MSC_VER)
hideakitai 0:3f9dbf1e2cb0 43
hideakitai 0:3f9dbf1e2cb0 44 #define MSGPACK_DETAIL_PP_CHECK(...) MSGPACK_DETAIL_PP_CHECK_N(__VA_ARGS__, 0)
hideakitai 0:3f9dbf1e2cb0 45 #define MSGPACK_DETAIL_PP_CHECK_N(x, n, ...) n
hideakitai 0:3f9dbf1e2cb0 46
hideakitai 0:3f9dbf1e2cb0 47 #endif // defined(__MSC_VER)
hideakitai 0:3f9dbf1e2cb0 48
hideakitai 0:3f9dbf1e2cb0 49
hideakitai 0:3f9dbf1e2cb0 50 #define MSGPACK_DETAIL_PP_NS_ENABLED_PROBE(ns) MSGPACK_DETAIL_PP_NS_ENABLED_PROBE_PROXY( MSGPACK_DETAIL_PP_ENABLE_NS_##ns )
hideakitai 0:3f9dbf1e2cb0 51 #define MSGPACK_DETAIL_PP_NS_ENABLED_PROBE_PROXY(...) MSGPACK_DETAIL_PP_NS_ENABLED_PROBE_PRIMIVIE(__VA_ARGS__)
hideakitai 0:3f9dbf1e2cb0 52 #define MSGPACK_DETAIL_PP_NS_ENABLED_PROBE_PRIMIVIE(x) MSGPACK_DETAIL_PP_NS_ENABLED_PROBE_COMBINE_ x
hideakitai 0:3f9dbf1e2cb0 53 #define MSGPACK_DETAIL_PP_NS_ENABLED_PROBE_COMBINE_(...) MSGPACK_DETAIL_PP_PROBE(~)
hideakitai 0:3f9dbf1e2cb0 54
hideakitai 0:3f9dbf1e2cb0 55 #define MSGPACK_DETAIL_PP_IS_NS_ENABLED(ns) MSGPACK_DETAIL_PP_CHECK(MSGPACK_DETAIL_PP_NS_ENABLED_PROBE(ns))
hideakitai 0:3f9dbf1e2cb0 56
hideakitai 0:3f9dbf1e2cb0 57 #if __cplusplus < 201103L
hideakitai 0:3f9dbf1e2cb0 58 #define MSGPACK_API_VERSION_NAMESPACE(ns) MSGPACK_DETAIL_PP_IIF(MSGPACK_DETAIL_PP_IS_NS_ENABLED(ns)) \
hideakitai 0:3f9dbf1e2cb0 59 (namespace ns{}; using namespace ns; namespace ns, \
hideakitai 0:3f9dbf1e2cb0 60 namespace ns)
hideakitai 0:3f9dbf1e2cb0 61
hideakitai 0:3f9dbf1e2cb0 62 #else // __cplusplus < 201103L
hideakitai 0:3f9dbf1e2cb0 63
hideakitai 0:3f9dbf1e2cb0 64 #define MSGPACK_API_VERSION_NAMESPACE(ns) MSGPACK_DETAIL_PP_IIF(MSGPACK_DETAIL_PP_IS_NS_ENABLED(ns)) \
hideakitai 0:3f9dbf1e2cb0 65 (inline namespace ns, namespace ns)
hideakitai 0:3f9dbf1e2cb0 66
hideakitai 0:3f9dbf1e2cb0 67 #endif // __cplusplus < 201103L
hideakitai 0:3f9dbf1e2cb0 68
hideakitai 0:3f9dbf1e2cb0 69 #endif // MSGPACK_VERSIONING_HPP