1# /* ************************************************************************** 2# * * 3# * (C) Copyright Paul Mensonides 2002. 4# * (C) Copyright Edward Diener 2014. 5# * Distributed under the Boost Software License, Version 1.0. (See 6# * accompanying file LICENSE_1_0.txt or copy at 7# * http://www.boost.org/LICENSE_1_0.txt) 8# * * 9# ************************************************************************** */ 10# 11# /* See http://www.boost.org for most recent version. */ 12# 13# ifndef MSGPACK_PREPROCESSOR_ARRAY_PUSH_FRONT_HPP 14# define MSGPACK_PREPROCESSOR_ARRAY_PUSH_FRONT_HPP 15# 16# include <msgpack/preprocessor/arithmetic/inc.hpp> 17# include <msgpack/preprocessor/array/data.hpp> 18# include <msgpack/preprocessor/array/size.hpp> 19# include <msgpack/preprocessor/config/config.hpp> 20# include <msgpack/preprocessor/punctuation/comma_if.hpp> 21# include <msgpack/preprocessor/tuple/rem.hpp> 22# include <msgpack/preprocessor/array/detail/get_data.hpp> 23# 24# /* MSGPACK_PP_ARRAY_PUSH_FRONT */ 25# 26# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() 27# define MSGPACK_PP_ARRAY_PUSH_FRONT(array, elem) MSGPACK_PP_ARRAY_PUSH_FRONT_I(MSGPACK_PP_ARRAY_SIZE(array), MSGPACK_PP_ARRAY_DATA(array), elem) 28# else 29# define MSGPACK_PP_ARRAY_PUSH_FRONT(array, elem) MSGPACK_PP_ARRAY_PUSH_FRONT_D(array, elem) 30# define MSGPACK_PP_ARRAY_PUSH_FRONT_D(array, elem) MSGPACK_PP_ARRAY_PUSH_FRONT_I(MSGPACK_PP_ARRAY_SIZE(array), MSGPACK_PP_ARRAY_DATA(array), elem) 31# endif 32# 33# define MSGPACK_PP_ARRAY_PUSH_FRONT_I(size, data, elem) (MSGPACK_PP_INC(size), (elem MSGPACK_PP_COMMA_IF(size) MSGPACK_PP_ARRAY_DETAIL_GET_DATA(size,data))) 34# 35# endif 36