unified array interface

[SVN r14387]
This commit is contained in:
Paul Mensonides
2002-07-10 06:29:05 +00:00
parent 6eedec544f
commit 015ac9cb2e
6 changed files with 75 additions and 97 deletions

View File

@ -14,26 +14,26 @@
# if !defined(BOOST_PP_FILENAME_1)
# error BOOST_PP: depth #1 filename is not defined
# endif
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_LIMITS))
# include BOOST_PP_SET_ITERATION_START()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_LIMITS))
# include BOOST_PP_SET_ITERATION_FINISH()
# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_LIMITS)) >= 3
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_LIMITS))
# include BOOST_PP_SET_ITERATION_FLAGS()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/detail/iterate/lower1.hpp>
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/detail/iterate/upper1.hpp>
# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_LIMITS) >= 3
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/detail/iterate/flags1.hpp>
# else
# define BOOST_PP_ITERATION_FLAGS_1 0
# endif
# undef BOOST_PP_ITERATION_LIMITS
# elif defined(BOOST_PP_ITERATION_PARAMS_1)
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_PARAMS_1))
# include BOOST_PP_SET_ITERATION_START()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_PARAMS_1))
# include BOOST_PP_SET_ITERATION_FINISH()
# define BOOST_PP_FILENAME_1 BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_PARAMS_1))
# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_PARAMS_1)) >= 4
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(3, (BOOST_PP_ITERATION_PARAMS_1))
# include BOOST_PP_SET_ITERATION_FLAGS()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_1)
# include <boost/preprocessor/detail/iterate/lower1.hpp>
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_1)
# include <boost/preprocessor/detail/iterate/upper1.hpp>
# define BOOST_PP_FILENAME_1 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_1)
# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_1) >= 4
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_1)
# include <boost/preprocessor/detail/iterate/flags1.hpp>
# else
# define BOOST_PP_ITERATION_FLAGS_1 0
# endif

View File

@ -14,26 +14,26 @@
# if !defined(BOOST_PP_FILENAME_2)
# error BOOST_PP: depth #2 filename is not defined
# endif
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_LIMITS))
# include BOOST_PP_SET_ITERATION_START()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_LIMITS))
# include BOOST_PP_SET_ITERATION_FINISH()
# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_LIMITS)) >= 3
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_LIMITS))
# include BOOST_PP_SET_ITERATION_FLAGS()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/detail/iterate/lower2.hpp>
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/detail/iterate/upper2.hpp>
# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_LIMITS) >= 3
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/detail/iterate/flags2.hpp>
# else
# define BOOST_PP_ITERATION_FLAGS_2 0
# endif
# undef BOOST_PP_ITERATION_LIMITS
# elif defined(BOOST_PP_ITERATION_PARAMS_2)
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_PARAMS_2))
# include BOOST_PP_SET_ITERATION_START()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_PARAMS_2))
# include BOOST_PP_SET_ITERATION_FINISH()
# define BOOST_PP_FILENAME_2 BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_PARAMS_2))
# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_PARAMS_2)) >= 4
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(3, (BOOST_PP_ITERATION_PARAMS_2))
# include BOOST_PP_SET_ITERATION_FLAGS()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_2)
# include <boost/preprocessor/detail/iterate/lower2.hpp>
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_2)
# include <boost/preprocessor/detail/iterate/upper2.hpp>
# define BOOST_PP_FILENAME_2 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_2)
# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_2) >= 4
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_2)
# include <boost/preprocessor/detail/iterate/flags2.hpp>
# else
# define BOOST_PP_ITERATION_FLAGS_2 0
# endif

View File

@ -14,26 +14,26 @@
# if !defined(BOOST_PP_FILENAME_3)
# error BOOST_PP: depth #3 filename is not defined
# endif
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_LIMITS))
# include BOOST_PP_SET_ITERATION_START()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_LIMITS))
# include BOOST_PP_SET_ITERATION_FINISH()
# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_LIMITS)) >= 3
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_LIMITS))
# include BOOST_PP_SET_ITERATION_FLAGS()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/detail/iterate/lower3.hpp>
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/detail/iterate/upper3.hpp>
# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_LIMITS) >= 3
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/detail/iterate/flags3.hpp>
# else
# define BOOST_PP_ITERATION_FLAGS_3 0
# endif
# undef BOOST_PP_ITERATION_LIMITS
# elif defined(BOOST_PP_ITERATION_PARAMS_3)
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_PARAMS_3))
# include BOOST_PP_SET_ITERATION_START()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_PARAMS_3))
# include BOOST_PP_SET_ITERATION_FINISH()
# define BOOST_PP_FILENAME_3 BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_PARAMS_3))
# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_PARAMS_3)) >= 4
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(3, (BOOST_PP_ITERATION_PARAMS_3))
# include BOOST_PP_SET_ITERATION_FLAGS()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_3)
# include <boost/preprocessor/detail/iterate/lower3.hpp>
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_3)
# include <boost/preprocessor/detail/iterate/upper3.hpp>
# define BOOST_PP_FILENAME_3 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_3)
# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_3) >= 4
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_3)
# include <boost/preprocessor/detail/iterate/flags3.hpp>
# else
# define BOOST_PP_ITERATION_FLAGS_3 0
# endif

View File

@ -14,26 +14,26 @@
# if !defined(BOOST_PP_FILENAME_4)
# error BOOST_PP: depth #4 filename is not defined
# endif
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_LIMITS))
# include BOOST_PP_SET_ITERATION_START()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_LIMITS))
# include BOOST_PP_SET_ITERATION_FINISH()
# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_LIMITS)) >= 3
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_LIMITS))
# include BOOST_PP_SET_ITERATION_FLAGS()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/detail/iterate/lower4.hpp>
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/detail/iterate/upper4.hpp>
# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_LIMITS) >= 3
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/detail/iterate/flags4.hpp>
# else
# define BOOST_PP_ITERATION_FLAGS_4 0
# endif
# undef BOOST_PP_ITERATION_LIMITS
# elif defined(BOOST_PP_ITERATION_PARAMS_4)
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_PARAMS_4))
# include BOOST_PP_SET_ITERATION_START()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_PARAMS_4))
# include BOOST_PP_SET_ITERATION_FINISH()
# define BOOST_PP_FILENAME_4 BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_PARAMS_4))
# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_PARAMS_4)) >= 4
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(3, (BOOST_PP_ITERATION_PARAMS_4))
# include BOOST_PP_SET_ITERATION_FLAGS()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_4)
# include <boost/preprocessor/detail/iterate/lower4.hpp>
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_4)
# include <boost/preprocessor/detail/iterate/upper4.hpp>
# define BOOST_PP_FILENAME_4 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_4)
# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_4) >= 4
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_4)
# include <boost/preprocessor/detail/iterate/flags4.hpp>
# else
# define BOOST_PP_ITERATION_FLAGS_4 0
# endif

View File

@ -14,26 +14,26 @@
# if !defined(BOOST_PP_FILENAME_5)
# error BOOST_PP: depth #5 filename is not defined
# endif
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_LIMITS))
# include BOOST_PP_SET_ITERATION_START()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_LIMITS))
# include BOOST_PP_SET_ITERATION_FINISH()
# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_LIMITS)) >= 3
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_LIMITS))
# include BOOST_PP_SET_ITERATION_FLAGS()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/detail/iterate/lower5.hpp>
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/detail/iterate/upper5.hpp>
# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_LIMITS) >= 3
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_LIMITS)
# include <boost/preprocessor/detail/iterate/flags5.hpp>
# else
# define BOOST_PP_ITERATION_FLAGS_5 0
# endif
# undef BOOST_PP_ITERATION_LIMITS
# elif defined(BOOST_PP_ITERATION_PARAMS_5)
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, (BOOST_PP_ITERATION_PARAMS_5))
# include BOOST_PP_SET_ITERATION_START()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, (BOOST_PP_ITERATION_PARAMS_5))
# include BOOST_PP_SET_ITERATION_FINISH()
# define BOOST_PP_FILENAME_5 BOOST_PP_ARRAY_ELEM(2, (BOOST_PP_ITERATION_PARAMS_5))
# if BOOST_PP_ARRAY_SIZE((BOOST_PP_ITERATION_PARAMS_5)) >= 4
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(3, (BOOST_PP_ITERATION_PARAMS_5))
# include BOOST_PP_SET_ITERATION_FLAGS()
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_5)
# include <boost/preprocessor/detail/iterate/lower5.hpp>
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_5)
# include <boost/preprocessor/detail/iterate/upper5.hpp>
# define BOOST_PP_FILENAME_5 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_5)
# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_5) >= 4
# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_5)
# include <boost/preprocessor/detail/iterate/flags5.hpp>
# else
# define BOOST_PP_ITERATION_FLAGS_5 0
# endif

View File

@ -50,28 +50,6 @@
# define BOOST_PP_RELATIVE_3(m) BOOST_PP_DETAIL_CAT2(m, BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH()))))
# define BOOST_PP_RELATIVE_4(m) BOOST_PP_DETAIL_CAT2(m, BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH())))))
#
# /* hotfix: these will be removed shortly! */
# define BOOST_PP_SET_ITERATION_START() BOOST_PP_DETAIL_CAT2(BOOST_PP_SET_ITERATION_START_, BOOST_PP_INC(BOOST_PP_ITERATION_DEPTH()))
# define BOOST_PP_SET_ITERATION_START_1 <boost/preprocessor/detail/iterate/lower1.hpp>
# define BOOST_PP_SET_ITERATION_START_2 <boost/preprocessor/detail/iterate/lower2.hpp>
# define BOOST_PP_SET_ITERATION_START_3 <boost/preprocessor/detail/iterate/lower3.hpp>
# define BOOST_PP_SET_ITERATION_START_4 <boost/preprocessor/detail/iterate/lower4.hpp>
# define BOOST_PP_SET_ITERATION_START_5 <boost/preprocessor/detail/iterate/lower5.hpp>
#
# define BOOST_PP_SET_ITERATION_FINISH() BOOST_PP_DETAIL_CAT2(BOOST_PP_SET_ITERATION_FINISH_, BOOST_PP_INC(BOOST_PP_ITERATION_DEPTH()))
# define BOOST_PP_SET_ITERATION_FINISH_1 <boost/preprocessor/detail/iterate/upper1.hpp>
# define BOOST_PP_SET_ITERATION_FINISH_2 <boost/preprocessor/detail/iterate/upper2.hpp>
# define BOOST_PP_SET_ITERATION_FINISH_3 <boost/preprocessor/detail/iterate/upper3.hpp>
# define BOOST_PP_SET_ITERATION_FINISH_4 <boost/preprocessor/detail/iterate/upper4.hpp>
# define BOOST_PP_SET_ITERATION_FINISH_5 <boost/preprocessor/detail/iterate/upper5.hpp>
#
# define BOOST_PP_SET_ITERATION_FLAGS() BOOST_PP_DETAIL_CAT2(BOOST_PP_SET_ITERATION_FLAGS_, BOOST_PP_INC(BOOST_PP_ITERATION_DEPTH()))
# define BOOST_PP_SET_ITERATION_FLAGS_1 <boost/preprocessor/detail/iterate/flags1.hpp>
# define BOOST_PP_SET_ITERATION_FLAGS_2 <boost/preprocessor/detail/iterate/flags2.hpp>
# define BOOST_PP_SET_ITERATION_FLAGS_3 <boost/preprocessor/detail/iterate/flags3.hpp>
# define BOOST_PP_SET_ITERATION_FLAGS_4 <boost/preprocessor/detail/iterate/flags4.hpp>
# define BOOST_PP_SET_ITERATION_FLAGS_5 <boost/preprocessor/detail/iterate/flags5.hpp>
#
# if defined BOOST_PP_EXTENDED_LINE_INFO && (!defined(__MWERKS__) || __MWERKS__ > 0x3001)
# define BOOST_PP_LINE(line, file) line BOOST_PP_STRINGIZE(file BOOST_PP_DETAIL_CAT2(BOOST_PP_LINE_, BOOST_PP_ITERATION_DEPTH()))
# else