Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 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 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 5 | #ifndef NDNBOOST_TYPEOF_REGISTER_FUNCTIONS_HPP_INCLUDED |
| 6 | #define NDNBOOST_TYPEOF_REGISTER_FUNCTIONS_HPP_INCLUDED |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 7 | |
| 8 | #include <ndnboost/preprocessor/repetition/enum.hpp> |
| 9 | #include <ndnboost/preprocessor/repetition/enum_params.hpp> |
| 10 | #include <ndnboost/preprocessor/repetition/enum_trailing_params.hpp> |
| 11 | #include <ndnboost/preprocessor/cat.hpp> |
| 12 | #include <ndnboost/preprocessor/inc.hpp> |
| 13 | #include <ndnboost/preprocessor/dec.hpp> |
| 14 | #include <ndnboost/preprocessor/if.hpp> |
| 15 | #include <ndnboost/preprocessor/arithmetic/add.hpp> |
| 16 | #include <ndnboost/preprocessor/iteration/iterate.hpp> |
| 17 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 18 | #include NDNBOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 19 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 20 | #ifndef NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY |
| 21 | #define NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY 10 |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 22 | #endif |
| 23 | |
| 24 | enum |
| 25 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 26 | FUN_ID = NDNBOOST_TYPEOF_UNIQUE_ID(), |
| 27 | FUN_PTR_ID = FUN_ID + 1 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY), |
| 28 | FUN_REF_ID = FUN_ID + 2 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY), |
| 29 | MEM_FUN_ID = FUN_ID + 3 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY), |
| 30 | CONST_MEM_FUN_ID = FUN_ID + 4 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY), |
| 31 | VOLATILE_MEM_FUN_ID = FUN_ID + 5 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY), |
| 32 | VOLATILE_CONST_MEM_FUN_ID = FUN_ID + 6 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY), |
| 33 | FUN_VAR_ID = FUN_ID + 7 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY), |
| 34 | FUN_VAR_PTR_ID = FUN_ID + 8 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY), |
| 35 | FUN_VAR_REF_ID = FUN_ID + 9 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY), |
| 36 | MEM_FUN_VAR_ID = FUN_ID + 10 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY), |
| 37 | CONST_MEM_FUN_VAR_ID = FUN_ID + 11 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY), |
| 38 | VOLATILE_MEM_FUN_VAR_ID = FUN_ID + 12 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY), |
| 39 | VOLATILE_CONST_MEM_FUN_VAR_ID = FUN_ID + 13 * NDNBOOST_PP_INC(NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 40 | }; |
| 41 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 42 | NDNBOOST_TYPEOF_BEGIN_ENCODE_NS |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 43 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 44 | # define NDNBOOST_PP_ITERATION_LIMITS (0, NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY) |
| 45 | # define NDNBOOST_PP_FILENAME_1 <ndnboost/typeof/register_functions_iterate.hpp> |
| 46 | # include NDNBOOST_PP_ITERATE() |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 47 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 48 | NDNBOOST_TYPEOF_END_ENCODE_NS |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 49 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame] | 50 | #endif//NDNBOOST_TYPEOF_REGISTER_FUNCTIONS_HPP_INCLUDED |