Automatic recursion

[SVN r14100]
This commit is contained in:
Vesa Karvonen
2002-06-07 13:04:18 +00:00
parent a18d5f79fc
commit 9f9048e805
82 changed files with 971 additions and 869 deletions

View File

@ -0,0 +1,42 @@
#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