]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | // Copyright (C) 2004 Arkadiy Vertleyb |
2 | // Use, modification and distribution is subject to the Boost Software | |
3 | // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) | |
4 | ||
5 | #ifndef BOOST_TYPEOF_REGISTER_FUNCTIONS_HPP_INCLUDED | |
6 | #define BOOST_TYPEOF_REGISTER_FUNCTIONS_HPP_INCLUDED | |
7 | ||
8 | #include <boost/preprocessor/repetition/enum.hpp> | |
9 | #include <boost/preprocessor/repetition/enum_params.hpp> | |
10 | #include <boost/preprocessor/repetition/enum_trailing_params.hpp> | |
11 | #include <boost/preprocessor/cat.hpp> | |
12 | #include <boost/preprocessor/inc.hpp> | |
13 | #include <boost/preprocessor/dec.hpp> | |
14 | #include <boost/preprocessor/if.hpp> | |
15 | #include <boost/preprocessor/arithmetic/add.hpp> | |
16 | #include <boost/preprocessor/iteration/iterate.hpp> | |
17 | ||
18 | #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() | |
19 | ||
20 | #ifndef BOOST_TYPEOF_LIMIT_FUNCTION_ARITY | |
21 | #define BOOST_TYPEOF_LIMIT_FUNCTION_ARITY 10 | |
22 | #endif | |
23 | ||
24 | enum | |
25 | { | |
26 | FUN_ID = BOOST_TYPEOF_UNIQUE_ID(), | |
27 | FUN_PTR_ID = FUN_ID + 1 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY), | |
28 | FUN_REF_ID = FUN_ID + 2 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY), | |
29 | MEM_FUN_ID = FUN_ID + 3 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY), | |
30 | CONST_MEM_FUN_ID = FUN_ID + 4 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY), | |
31 | VOLATILE_MEM_FUN_ID = FUN_ID + 5 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY), | |
32 | VOLATILE_CONST_MEM_FUN_ID = FUN_ID + 6 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY), | |
33 | FUN_VAR_ID = FUN_ID + 7 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY), | |
34 | FUN_VAR_PTR_ID = FUN_ID + 8 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY), | |
35 | FUN_VAR_REF_ID = FUN_ID + 9 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY), | |
36 | MEM_FUN_VAR_ID = FUN_ID + 10 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY), | |
37 | CONST_MEM_FUN_VAR_ID = FUN_ID + 11 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY), | |
38 | VOLATILE_MEM_FUN_VAR_ID = FUN_ID + 12 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY), | |
39 | VOLATILE_CONST_MEM_FUN_VAR_ID = FUN_ID + 13 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY) | |
40 | }; | |
41 | ||
42 | BOOST_TYPEOF_BEGIN_ENCODE_NS | |
43 | ||
44 | # define BOOST_PP_ITERATION_LIMITS (0, BOOST_TYPEOF_LIMIT_FUNCTION_ARITY) | |
45 | # define BOOST_PP_FILENAME_1 <boost/typeof/register_functions_iterate.hpp> | |
46 | # include BOOST_PP_ITERATE() | |
47 | ||
48 | BOOST_TYPEOF_END_ENCODE_NS | |
49 | ||
50 | #endif//BOOST_TYPEOF_REGISTER_FUNCTIONS_HPP_INCLUDED |