|
108 | 108 | #defineCUB_NS_QUALIFIER ::cub
|
109 | 109 | #endif
|
110 | 110 |
|
111 |
| -#if !defined(CUB_DETAIL_MAGIC_NS_NAME) |
112 |
| -#defineCUB_DETAIL_COUNT_N(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, \ |
113 |
| - _14, _15, _16, _17, _18, _19, _20, N, ...) \ |
114 |
| - N |
115 |
| -#defineCUB_DETAIL_COUNT(...) \ |
116 |
| -CUB_DETAIL_IDENTITY(CUB_DETAIL_COUNT_N(__VA_ARGS__,20,19,18,17,16,15,14,13,12, \ |
117 |
| -11,10,9,8,7,6,5,4,3,2,1)) |
118 |
| -#defineCUB_DETAIL_IDENTITY(N) N |
119 |
| -#defineCUB_DETAIL_APPLY(MACRO, ...) CUB_DETAIL_IDENTITY(MACRO(__VA_ARGS__)) |
120 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME1(P1) \ |
121 |
| - CUB_##P1##_NS |
122 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME2(P1, P2) \ |
123 |
| - CUB_##P1##_##P2##_NS |
124 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME3(P1, P2, P3) \ |
125 |
| - CUB_##P1##_##P2##_##P3##_NS |
126 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME4(P1, P2, P3, P4) \ |
127 |
| - CUB_##P1##_##P2##_##P3##_##P4##_NS |
128 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME5(P1, P2, P3, P4, P5) \ |
129 |
| - CUB_##P1##_##P2##_##P3##_##P4##_##P5##_NS |
130 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME6(P1, P2, P3, P4, P5, P6) \ |
131 |
| - CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_NS |
132 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME7(P1, P2, P3, P4, P5, P6, P7) \ |
133 |
| - CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_NS |
134 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME8(P1, P2, P3, P4, P5, P6, P7, P8) \ |
135 |
| - CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_NS |
136 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME9(P1, P2, P3, P4, P5, P6, P7, P8, P9) \ |
137 |
| - CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_NS |
138 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME10(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10) \ |
139 |
| - CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_NS |
140 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME11(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11) \ |
141 |
| - CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_NS |
142 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME12(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12) \ |
143 |
| - CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_##P12##_NS |
144 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME13(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13) \ |
145 |
| - CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_##P12##_##P13##_NS |
146 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME14(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14) \ |
147 |
| - CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_##P12##_##P13##_##P14##_NS |
148 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME15(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15) \ |
149 |
| - CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_##P12##_##P13##_##P14##_##P15##_NS |
150 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME16(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16) \ |
151 |
| - CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_##P12##_##P13##_##P14##_##P15##_##P16##_NS |
152 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME17(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17) \ |
153 |
| - CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_##P12##_##P13##_##P14##_##P15##_##P16##_##P17##_NS |
154 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME18(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18) \ |
155 |
| - CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_##P12##_##P13##_##P14##_##P15##_##P16##_##P17##_##P18##_NS |
156 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME19(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19) \ |
157 |
| - CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_##P12##_##P13##_##P14##_##P15##_##P16##_##P17##_##P18##_##P19##_NS |
158 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME20(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20) \ |
159 |
| - CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_##P12##_##P13##_##P14##_##P15##_##P16##_##P17##_##P18##_##P19##_##P20##_NS |
160 |
| -#defineCUB_DETAIL_DISPATCH(N) CUB_DETAIL_MAGIC_NS_NAME ## N |
161 |
| -#defineCUB_DETAIL_MAGIC_NS_NAME(...) CUB_DETAIL_IDENTITY(CUB_DETAIL_APPLY(CUB_DETAIL_DISPATCH, CUB_DETAIL_COUNT(__VA_ARGS__))(__VA_ARGS__)) |
162 |
| -#endif// !defined(CUB_DETAIL_MAGIC_NS_NAME) |
163 |
| - |
164 |
| -#if defined(CUB_DISABLE_NAMESPACE_MAGIC) |
165 |
| -#if !defined(CUB_WRAPPED_NAMESPACE) |
166 |
| -#if !defined(CUB_IGNORE_NAMESPACE_MAGIC_ERROR) |
167 |
| -#error "Disabling namespace magic is unsafe without wrapping namespace" |
168 |
| -#endif// !defined(CUB_IGNORE_NAMESPACE_MAGIC_ERROR) |
169 |
| -#endif// !defined(CUB_WRAPPED_NAMESPACE) |
170 |
| -#defineCUB_DETAIL_MAGIC_NS_BEGIN |
171 |
| -#defineCUB_DETAIL_MAGIC_NS_END |
172 |
| -#else// not defined(CUB_DISABLE_NAMESPACE_MAGIC) |
173 |
| -#if defined(_NVHPC_CUDA) |
174 |
| -#defineCUB_DETAIL_MAGIC_NS_BEGINinlinenamespaceCUB_DETAIL_MAGIC_NS_NAME(CUB_VERSION, NV_TARGET_SM_INTEGER_LIST) { |
175 |
| -#defineCUB_DETAIL_MAGIC_NS_END } |
176 |
| -#else// not defined(_NVHPC_CUDA) |
177 |
| -#defineCUB_DETAIL_MAGIC_NS_BEGINinlinenamespaceCUB_DETAIL_MAGIC_NS_NAME(CUB_VERSION, __CUDA_ARCH_LIST__) { |
178 |
| -#defineCUB_DETAIL_MAGIC_NS_END } |
179 |
| -#endif// not defined(_NVHPC_CUDA) |
180 |
| -#endif// not defined(CUB_DISABLE_NAMESPACE_MAGIC) |
181 |
| - |
182 | 111 | /**
|
183 | 112 | * \def CUB_NAMESPACE_BEGIN
|
184 | 113 | * This macro is used to open a `cub::` namespace block, along with any
|
|
188 | 117 | #defineCUB_NAMESPACE_BEGIN \
|
189 | 118 | CUB_NS_PREFIX \
|
190 | 119 | namespacecub \
|
191 |
| - { \ |
192 |
| - CUB_DETAIL_MAGIC_NS_BEGIN |
| 120 | + { |
193 | 121 |
|
194 | 122 | /**
|
195 | 123 | * \def CUB_NAMESPACE_END
|
|
198 | 126 | * This macro is defined by CUB and may not be overridden.
|
199 | 127 | */
|
200 | 128 | #defineCUB_NAMESPACE_END \
|
201 |
| - CUB_DETAIL_MAGIC_NS_END \ |
202 | 129 | }/* end namespace cub*/ \
|
203 | 130 | CUB_NS_POSTFIX
|
204 | 131 |
|
|