Files
boost_preprocessor/include/boost/preprocessor/detail/auto_rec.hpp
Vesa Karvonen 9f9048e805 Automatic recursion
[SVN r14100]
2002-06-07 13:04:18 +00:00

43 lines
1.8 KiB
C++

#ifndef BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
#define BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
/* Copyright (C) 2002 Vesa Karvonen
*
* Permission to copy, use, modify, sell and distribute this software is
* granted provided this copyright notice appears in all copies. This
* software is provided "as is" without express or implied warranty, and
* with no claim as to its suitability for any purpose.
*
* Based on an original idea by Paul Mensonides this header defines macros
* for the definition of automatically recursive macros.
*
* See http://www.boost.org for most recent version.
*/
/* Identity macro for auto rec support. */
#define BOOST_PP_AUTO_REC_ID(X) X
/* Catenation macros for auto rec support. */
#define BOOST_PP_AUTO_REC_CAT0(X,Y) BOOST_PP_AUTO_REC_DO_CAT0(X,Y)
#define BOOST_PP_AUTO_REC_CAT1(X,Y) BOOST_PP_AUTO_REC_DO_CAT1(X,Y)
#define BOOST_PP_AUTO_REC_CAT2(X,Y) BOOST_PP_AUTO_REC_DO_CAT2(X,Y)
#define BOOST_PP_AUTO_REC_CAT3(X,Y) BOOST_PP_AUTO_REC_DO_CAT3(X,Y)
#define BOOST_PP_AUTO_REC_CAT4(X,Y) BOOST_PP_AUTO_REC_DO_CAT4(X,Y)
#define BOOST_PP_AUTO_REC_CAT5(X,Y) BOOST_PP_AUTO_REC_DO_CAT5(X,Y)
#define BOOST_PP_AUTO_REC_CAT6(X,Y) BOOST_PP_AUTO_REC_DO_CAT6(X,Y)
#define BOOST_PP_AUTO_REC_CAT7(X,Y) BOOST_PP_AUTO_REC_DO_CAT7(X,Y)
#define BOOST_PP_AUTO_REC_CAT8(X,Y) BOOST_PP_AUTO_REC_DO_CAT8(X,Y)
#define BOOST_PP_AUTO_REC_CAT9(X,Y) BOOST_PP_AUTO_REC_DO_CAT9(X,Y)
#define BOOST_PP_AUTO_REC_DO_CAT0(X,Y) X##Y
#define BOOST_PP_AUTO_REC_DO_CAT1(X,Y) X##Y
#define BOOST_PP_AUTO_REC_DO_CAT2(X,Y) X##Y
#define BOOST_PP_AUTO_REC_DO_CAT3(X,Y) X##Y
#define BOOST_PP_AUTO_REC_DO_CAT4(X,Y) X##Y
#define BOOST_PP_AUTO_REC_DO_CAT5(X,Y) X##Y
#define BOOST_PP_AUTO_REC_DO_CAT6(X,Y) X##Y
#define BOOST_PP_AUTO_REC_DO_CAT7(X,Y) X##Y
#define BOOST_PP_AUTO_REC_DO_CAT8(X,Y) X##Y
#define BOOST_PP_AUTO_REC_DO_CAT9(X,Y) X##Y
#endif