]> git.lyx.org Git - lyx.git/blob - boost/boost/preprocessor/array.hpp
update boost
[lyx.git] / boost / boost / preprocessor / array.hpp
1 # ifndef BOOST_PREPROCESSOR_ARRAY_HPP
2 # define BOOST_PREPROCESSOR_ARRAY_HPP
3 #
4 # /* **************************************************************************
5 #  *                                                                          *
6 #  *     (C) Copyright Paul Mensonides 2002.  Permission to copy, use,        *
7 #  *     modify, sell, and distribute this software is granted provided       *
8 #  *     this copyright notice appears in all copies.  This software is       *
9 #  *     provided "as is" without express or implied warranty, and with       *
10 #  *     no claim at to its suitability for any purpose.                      *
11 #  *                                                                          *
12 #  ************************************************************************** */
13 #
14 # include <boost/preprocessor/tuple/elem.hpp>
15 #
16 # define BOOST_PP_ARRAY(size, data) (size, data)
17 #
18 # if !defined(__MWERKS__) || defined(BOOST_NO_COMPILER_CONFIG) || __MWERKS__ > 0x3002 
19 #   define BOOST_PP_ARRAY_SIZE(arr) BOOST_PP_ARRAY_SIZE_I arr
20 # else
21 #   define BOOST_PP_ARRAY_SIZE(arr) BOOST_PP_ARRAY_SIZE_D(arr)
22 #   define BOOST_PP_ARRAY_SIZE_D(arr) BOOST_PP_ARRAY_SIZE_I ## arr
23 # endif
24 #
25 # define BOOST_PP_ARRAY_SIZE_I(size, data) size
26 #
27 # if !defined(__MWERKS__) || defined(BOOST_NO_COMPILER_CONFIG) || __MWERKS__ > 0x3002
28 #   define BOOST_PP_ARRAY_DATA(arr) BOOST_PP_ARRAY_DATA_I arr
29 # else
30 #   define BOOST_PP_ARRAY_DATA(arr) BOOST_PP_ARRAY_DATA_D(arr)
31 #   define BOOST_PP_ARRAY_DATA_D(arr) BOOST_PP_ARRAY_DATA_I ## arr
32 # endif
33 #
34 # define BOOST_PP_ARRAY_DATA_I(size, data) data
35 #
36 # if !defined(__MWERKS__) || defined(BOOST_NO_COMPILER_CONFIG) || __MWERKS__ > 0x3002
37 #   define BOOST_PP_ARRAY_ELEM(i, arr) BOOST_PP_TUPLE_ELEM(BOOST_PP_ARRAY_SIZE_I arr, i, BOOST_PP_ARRAY_DATA_I arr)
38 # else
39 #   define BOOST_PP_ARRAY_ELEM(i, arr) BOOST_PP_ARRAY_ELEM_D(i, arr)
40 #   define BOOST_PP_ARRAY_ELEM_D(i, arr) BOOST_PP_TUPLE_ELEM(BOOST_PP_ARRAY_SIZE(arr), i, BOOST_PP_ARRAY_DATA(arr))
41 # endif
42 #
43 # endif