1# /* ************************************************************************** 2# * * 3# * (C) Copyright Edward Diener 2014. * 4# * Distributed under the Boost Software License, Version 1.0. (See * 5# * accompanying file LICENSE_1_0.txt or copy at * 6# * http://www.boost.org/LICENSE_1_0.txt) * 7# * * 8# ************************************************************************** */ 9# 10# /* See http://www.boost.org for most recent version. */ 11# 12# ifndef MSGPACK_PREPROCESSOR_ARRAY_DETAIL_GET_DATA_HPP 13# define MSGPACK_PREPROCESSOR_ARRAY_DETAIL_GET_DATA_HPP 14# 15# include <msgpack/preprocessor/config/config.hpp> 16# include <msgpack/preprocessor/tuple/rem.hpp> 17# include <msgpack/preprocessor/control/if.hpp> 18# include <msgpack/preprocessor/control/iif.hpp> 19# include <msgpack/preprocessor/facilities/is_1.hpp> 20# 21# /* MSGPACK_PP_ARRAY_DETAIL_GET_DATA */ 22# 23# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA_NONE(size, data) 24 25# if MSGPACK_PP_VARIADICS && !(MSGPACK_PP_VARIADICS_MSVC && _MSC_VER <= 1400) 26# if MSGPACK_PP_VARIADICS_MSVC 27# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY_VC_DEFAULT(size, data) MSGPACK_PP_TUPLE_REM(size) data 28# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY_VC_CAT(size, data) MSGPACK_PP_TUPLE_REM_CAT(size) data 29# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY(size, data) \ 30 MSGPACK_PP_IIF \ 31 ( \ 32 MSGPACK_PP_IS_1(size), \ 33 MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY_VC_CAT, \ 34 MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY_VC_DEFAULT \ 35 ) \ 36 (size,data) \ 37/**/ 38# else 39# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY(size, data) MSGPACK_PP_TUPLE_REM(size) data 40# endif 41# else 42# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY(size, data) MSGPACK_PP_TUPLE_REM(size) data 43# endif 44 45# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA(size, data) \ 46 MSGPACK_PP_IF \ 47 ( \ 48 size, \ 49 MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY, \ 50 MSGPACK_PP_ARRAY_DETAIL_GET_DATA_NONE \ 51 ) \ 52 (size,data) \ 53/**/ 54# 55# endif /* MSGPACK_PREPROCESSOR_ARRAY_DETAIL_GET_DATA_HPP */ 56