numbered_c.hpp
Go to the documentation of this file.
1 
2 // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
3 
4 #if defined(BOOST_PP_IS_ITERATING)
5 
6 // Copyright Aleksey Gurtovoy 2000-2004
7 //
8 // Distributed under the Boost Software License, Version 1.0.
9 // (See accompanying file LICENSE_1_0.txt or copy at
10 // http://www.boost.org/LICENSE_1_0.txt)
11 //
12 // See http://www.boost.org/libs/mpl for documentation.
13 
14 // $Id: numbered_c.hpp 13472 2017-08-22 07:53:44Z richean $
15 // $Date: 2017-08-22 09:53:44 +0200 (Di, 22 Aug 2017) $
16 // $Revision: 13472 $
17 
24 
25 #define i_ BOOST_PP_FRAME_ITERATION(1)
26 
27 #if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
28 
29 # define AUX778076_VECTOR_TAIL(vector, i_, C) \
30  BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c)<T \
31  BOOST_PP_COMMA_IF(i_) BOOST_PP_ENUM_PARAMS(i_, C) \
32  > \
33 
34 
35 #if i_ > 0
36 template<
37  typename T
38  , BOOST_PP_ENUM_PARAMS(i_, T C)
39  >
40 struct BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c)
41  : v_item<
42  integral_c<T,BOOST_PP_CAT(C,BOOST_PP_DEC(i_))>
43  , AUX778076_VECTOR_TAIL(vector,BOOST_PP_DEC(i_),C)
44  >
45 {
46  typedef BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) type;
47  typedef T value_type;
48 };
49 #endif
50 
51 # undef AUX778076_VECTOR_TAIL
52 
53 #else // "brute force" implementation
54 
55 # define AUX778076_VECTOR_C_PARAM_FUNC(unused, i_, param) \
56  BOOST_PP_COMMA_IF(i_) \
57  integral_c<T,BOOST_PP_CAT(param,i_)> \
58 
59 
60 template<
61  typename T
62  , BOOST_PP_ENUM_PARAMS(i_, T C)
63  >
64 struct BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c)
65  : BOOST_PP_CAT(vector,i_)< BOOST_PP_REPEAT(i_,AUX778076_VECTOR_C_PARAM_FUNC,C) >
66 {
67  typedef BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) type;
68  typedef T value_type;
69 };
70 
71 # undef AUX778076_VECTOR_C_PARAM_FUNC
72 
73 #endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
74 
75 #undef i_
76 
77 #endif // BOOST_PP_IS_ITERATING
BOOST_PP_CAT
struct BOOST_PP_CAT(AUX778076_COUNT_ARGS_PREFIX, _count_args)
Definition: count_args.hpp:86
T
T
Definition: mem_fn_cc.hpp:25
cat.hpp
comma_if.hpp
BOOST_PP_ENUM_PARAMS
#define BOOST_PP_ENUM_PARAMS(count, param)
Definition: repetition/enum_params.hpp:26
enum_params.hpp
repeat.hpp
dec.hpp
enum_shifted_params.hpp


sick_visionary_ros
Author(s): SICK AG TechSupport 3D Snapshot
autogenerated on Thu Feb 8 2024 03:45:33