1 # /* Copyright (C) 2001 2 # * Housemarque Oy 3 # * http://www.housemarque.com 4 # * 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 # /* Revised by Paul Mensonides (2002) */ 11 # 12 # /* See http://www.boost.org for most recent version. */ 13 # 14 # ifndef BOOST_PREPROCESSOR_LIST_APPEND_HPP 15 # define BOOST_PREPROCESSOR_LIST_APPEND_HPP 16 # 17 # include <boost/preprocessor/config/config.hpp> 18 # include <boost/preprocessor/list/fold_right.hpp> 19 # 20 # /* BOOST_PP_LIST_APPEND */ 21 # 22 # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 23 # define BOOST_PP_LIST_APPEND(a, b) BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_APPEND_O, b, a) 24 # else 25 # define BOOST_PP_LIST_APPEND(a, b) BOOST_PP_LIST_APPEND_I(a, b) 26 # define BOOST_PP_LIST_APPEND_I(a, b) BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_APPEND_O, b, a) 27 # endif 28 # 29 # define BOOST_PP_LIST_APPEND_O(d, s, x) (x, s) 30 # 31 # /* BOOST_PP_LIST_APPEND_D */ 32 # 33 # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 34 # define BOOST_PP_LIST_APPEND_D(d, a, b) BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_APPEND_O, b, a) 35 # else 36 # define BOOST_PP_LIST_APPEND_D(d, a, b) BOOST_PP_LIST_APPEND_D_I(d, a, b) 37 # define BOOST_PP_LIST_APPEND_D_I(d, a, b) BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_APPEND_O, b, a) 38 # endif 39 # 40 # endif 41