messagepack implementation for embedded systems (mbed / arduino)

Dependents:   hello_message_pack

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers is_empty.hpp Source File

is_empty.hpp

00001 # /* **************************************************************************
00002 #  *                                                                          *
00003 #  *     (C) Copyright Paul Mensonides 2003.
00004 #  *     (C) Copyright Edward Diener 2014.
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_FACILITIES_IS_EMPTY_HPP
00014 # define MSGPACK_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP
00015 #
00016 # include <msgpack/preprocessor/config/config.hpp>
00017 #
00018 # if MSGPACK_PP_VARIADICS
00019 #
00020 # include <msgpack/preprocessor/facilities/is_empty_variadic.hpp>
00021 #
00022 # else
00023 #
00024 # if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() && ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
00025 # include <msgpack/preprocessor/tuple/elem.hpp>
00026 # include <msgpack/preprocessor/facilities/identity.hpp>
00027 # else
00028 # include <msgpack/preprocessor/cat.hpp>
00029 # include <msgpack/preprocessor/detail/split.hpp>
00030 # endif
00031 #
00032 # /* MSGPACK_PP_IS_EMPTY */
00033 #
00034 # if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() && ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
00035 #    define MSGPACK_PP_IS_EMPTY(x) MSGPACK_PP_IS_EMPTY_I(x MSGPACK_PP_IS_EMPTY_HELPER)
00036 #    define MSGPACK_PP_IS_EMPTY_I(contents) MSGPACK_PP_TUPLE_ELEM(2, 1, (MSGPACK_PP_IS_EMPTY_DEF_ ## contents()))
00037 #    define MSGPACK_PP_IS_EMPTY_DEF_MSGPACK_PP_IS_EMPTY_HELPER 1, MSGPACK_PP_IDENTITY(1)
00038 #    define MSGPACK_PP_IS_EMPTY_HELPER() , 0
00039 # else
00040 #    if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
00041 #        define MSGPACK_PP_IS_EMPTY(x) MSGPACK_PP_IS_EMPTY_I(MSGPACK_PP_IS_EMPTY_HELPER x ())
00042 #        define MSGPACK_PP_IS_EMPTY_I(test) MSGPACK_PP_IS_EMPTY_II(MSGPACK_PP_SPLIT(0, MSGPACK_PP_CAT(MSGPACK_PP_IS_EMPTY_DEF_, test)))
00043 #        define MSGPACK_PP_IS_EMPTY_II(id) id
00044 #    else
00045 #        define MSGPACK_PP_IS_EMPTY(x) MSGPACK_PP_IS_EMPTY_I((MSGPACK_PP_IS_EMPTY_HELPER x ()))
00046 #        define MSGPACK_PP_IS_EMPTY_I(par) MSGPACK_PP_IS_EMPTY_II ## par
00047 #        define MSGPACK_PP_IS_EMPTY_II(test) MSGPACK_PP_SPLIT(0, MSGPACK_PP_CAT(MSGPACK_PP_IS_EMPTY_DEF_, test))
00048 #    endif
00049 #    define MSGPACK_PP_IS_EMPTY_HELPER() 1
00050 #    define MSGPACK_PP_IS_EMPTY_DEF_1 1, MSGPACK_PP_NIL
00051 #    define MSGPACK_PP_IS_EMPTY_DEF_MSGPACK_PP_IS_EMPTY_HELPER 0, MSGPACK_PP_NIL
00052 # endif
00053 #
00054 # endif /* MSGPACK_PP_VARIADICS */
00055 #
00056 # endif /* MSGPACK_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP */