BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bslmf_nthparameter_cpp03.h
Go to the documentation of this file.
1/// @file bslmf_nthparameter_cpp03.h
2///
3/// The content of this file has been pre-processed for Doxygen.
4///
5
6
7// bslmf_nthparameter_cpp03.h -*-C++-*-
8
9// Automatically generated file. **DO NOT EDIT**
10
11#ifndef INCLUDED_BSLMF_NTHPARAMETER_CPP03
12#define INCLUDED_BSLMF_NTHPARAMETER_CPP03
13
14/// @defgroup bslmf_nthparameter_cpp03 bslmf_nthparameter_cpp03
15/// @brief Provide C++03 implementation for bslmf_nthparameter.h
16/// @addtogroup bsl
17/// @{
18/// @addtogroup bslmf
19/// @{
20/// @addtogroup bslmf_nthparameter_cpp03
21/// @{
22///
23/// <h1> Outline </h1>
24/// * <a href="#bslmf_nthparameter_cpp03-purpose"> Purpose</a>
25/// * <a href="#bslmf_nthparameter_cpp03-classes"> Classes </a>
26/// * <a href="#bslmf_nthparameter_cpp03-description"> Description </a>
27///
28/// # Purpose {#bslmf_nthparameter_cpp03-purpose}
29/// Provide C++03 implementation for bslmf_nthparameter.h
30///
31/// # Classes {#bslmf_nthparameter_cpp03-classes}
32/// See bslmf_nthparameter.h for list of classes
33///
34/// @see bslmf_nthparameter
35///
36/// # Description {#bslmf_nthparameter_cpp03-description}
37/// This component is the C++03 translation of a C++11 component,
38/// generated by the 'sim_cpp11_features.pl' program. If the original header
39/// contains any specially delimited regions of C++11 code, then this generated
40/// file contains the C++03 equivalent, i.e., with variadic templates expanded
41/// and rvalue-references replaced by 'bslmf::MovableRef' objects. The header
42/// code in this file is designed to be '#include'd into the original header
43/// when compiling with a C++03 compiler. If there are no specially delimited
44/// regions of C++11 code, then this header contains no code and is not
45/// '#include'd in the original header.
46///
47/// Generated on Sun Sep 1 05:38:31 2024
48/// Command line: sim_cpp11_features.pl bslmf_nthparameter.h
49/// @}
50/** @} */
51/** @} */
52
53/** @addtogroup bsl
54 * @{
55 */
56/** @addtogroup bslmf
57 * @{
58 */
59/** @addtogroup bslmf_nthparameter_cpp03
60 * @{
61 */
62
63#ifdef COMPILING_BSLMF_NTHPARAMETER_H
64
65
66
67namespace bslmf {
68
69 // ===========================
70 // class template NthParameter
71 // ===========================
72
73struct NthParameter_Sentinel; // Declared but not defined
74
75#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
76// {{{ BEGIN GENERATED CODE
77// Command line: sim_cpp11_features.pl bslmf_nthparameter.h
78#ifndef BSLMF_NTHPARAMETER_VARIADIC_LIMIT
79#define BSLMF_NTHPARAMETER_VARIADIC_LIMIT 15
80#endif
81#ifndef BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A
82#define BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A BSLMF_NTHPARAMETER_VARIADIC_LIMIT
83#endif
84
85template <std::size_t t_N,
86 class t_FIRST_PARAM = NthParameter_Sentinel
87#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 0
88 , class t_PARAMS_0 = BSLS_COMPILERFEATURES_NILT
89#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 0
90
91#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 1
92 , class t_PARAMS_1 = BSLS_COMPILERFEATURES_NILT
93#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 1
94
95#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 2
96 , class t_PARAMS_2 = BSLS_COMPILERFEATURES_NILT
97#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 2
98
99#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 3
100 , class t_PARAMS_3 = BSLS_COMPILERFEATURES_NILT
101#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 3
102
103#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 4
104 , class t_PARAMS_4 = BSLS_COMPILERFEATURES_NILT
105#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 4
106
107#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 5
108 , class t_PARAMS_5 = BSLS_COMPILERFEATURES_NILT
109#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 5
110
111#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 6
112 , class t_PARAMS_6 = BSLS_COMPILERFEATURES_NILT
113#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 6
114
115#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 7
116 , class t_PARAMS_7 = BSLS_COMPILERFEATURES_NILT
117#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 7
118
119#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 8
120 , class t_PARAMS_8 = BSLS_COMPILERFEATURES_NILT
121#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 8
122
123#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 9
124 , class t_PARAMS_9 = BSLS_COMPILERFEATURES_NILT
125#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 9
126
127#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 10
128 , class t_PARAMS_10 = BSLS_COMPILERFEATURES_NILT
129#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 10
130
131#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 11
132 , class t_PARAMS_11 = BSLS_COMPILERFEATURES_NILT
133#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 11
134
135#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 12
136 , class t_PARAMS_12 = BSLS_COMPILERFEATURES_NILT
137#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 12
138
139#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 13
140 , class t_PARAMS_13 = BSLS_COMPILERFEATURES_NILT
141#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 13
142
143#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 14
144 , class t_PARAMS_14 = BSLS_COMPILERFEATURES_NILT
145#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 14
146 , class = BSLS_COMPILERFEATURES_NILT>
147struct NthParameter;
148
149#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 0
150template <std::size_t t_N, class t_FIRST_PARAM>
151struct NthParameter<t_N, t_FIRST_PARAM> {
152
153 typedef typename NthParameter<t_N - 1>::Type Type;
154};
155#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 0
156
157#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 1
158template <std::size_t t_N, class t_FIRST_PARAM, class t_PARAMS_01>
159struct NthParameter<t_N, t_FIRST_PARAM, t_PARAMS_01> {
160
161 typedef typename NthParameter<t_N - 1, t_PARAMS_01>::Type Type;
162};
163#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 1
164
165#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 2
166template <std::size_t t_N, class t_FIRST_PARAM, class t_PARAMS_01,
167 class t_PARAMS_02>
168struct NthParameter<t_N, t_FIRST_PARAM, t_PARAMS_01,
169 t_PARAMS_02> {
170
171 typedef typename NthParameter<t_N - 1, t_PARAMS_01,
172 t_PARAMS_02>::Type Type;
173};
174#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 2
175
176#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 3
177template <std::size_t t_N, class t_FIRST_PARAM, class t_PARAMS_01,
178 class t_PARAMS_02,
179 class t_PARAMS_03>
180struct NthParameter<t_N, t_FIRST_PARAM, t_PARAMS_01,
181 t_PARAMS_02,
182 t_PARAMS_03> {
183
184 typedef typename NthParameter<t_N - 1, t_PARAMS_01,
185 t_PARAMS_02,
186 t_PARAMS_03>::Type Type;
187};
188#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 3
189
190#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 4
191template <std::size_t t_N, class t_FIRST_PARAM, class t_PARAMS_01,
192 class t_PARAMS_02,
193 class t_PARAMS_03,
194 class t_PARAMS_04>
195struct NthParameter<t_N, t_FIRST_PARAM, t_PARAMS_01,
196 t_PARAMS_02,
197 t_PARAMS_03,
198 t_PARAMS_04> {
199
200 typedef typename NthParameter<t_N - 1, t_PARAMS_01,
201 t_PARAMS_02,
202 t_PARAMS_03,
203 t_PARAMS_04>::Type Type;
204};
205#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 4
206
207#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 5
208template <std::size_t t_N, class t_FIRST_PARAM, class t_PARAMS_01,
209 class t_PARAMS_02,
210 class t_PARAMS_03,
211 class t_PARAMS_04,
212 class t_PARAMS_05>
213struct NthParameter<t_N, t_FIRST_PARAM, t_PARAMS_01,
214 t_PARAMS_02,
215 t_PARAMS_03,
216 t_PARAMS_04,
217 t_PARAMS_05> {
218
219 typedef typename NthParameter<t_N - 1, t_PARAMS_01,
220 t_PARAMS_02,
221 t_PARAMS_03,
222 t_PARAMS_04,
223 t_PARAMS_05>::Type Type;
224};
225#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 5
226
227#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 6
228template <std::size_t t_N, class t_FIRST_PARAM, class t_PARAMS_01,
229 class t_PARAMS_02,
230 class t_PARAMS_03,
231 class t_PARAMS_04,
232 class t_PARAMS_05,
233 class t_PARAMS_06>
234struct NthParameter<t_N, t_FIRST_PARAM, t_PARAMS_01,
235 t_PARAMS_02,
236 t_PARAMS_03,
237 t_PARAMS_04,
238 t_PARAMS_05,
239 t_PARAMS_06> {
240
241 typedef typename NthParameter<t_N - 1, t_PARAMS_01,
242 t_PARAMS_02,
243 t_PARAMS_03,
244 t_PARAMS_04,
245 t_PARAMS_05,
246 t_PARAMS_06>::Type Type;
247};
248#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 6
249
250#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 7
251template <std::size_t t_N, class t_FIRST_PARAM, class t_PARAMS_01,
252 class t_PARAMS_02,
253 class t_PARAMS_03,
254 class t_PARAMS_04,
255 class t_PARAMS_05,
256 class t_PARAMS_06,
257 class t_PARAMS_07>
258struct NthParameter<t_N, t_FIRST_PARAM, t_PARAMS_01,
259 t_PARAMS_02,
260 t_PARAMS_03,
261 t_PARAMS_04,
262 t_PARAMS_05,
263 t_PARAMS_06,
264 t_PARAMS_07> {
265
266 typedef typename NthParameter<t_N - 1, t_PARAMS_01,
267 t_PARAMS_02,
268 t_PARAMS_03,
269 t_PARAMS_04,
270 t_PARAMS_05,
271 t_PARAMS_06,
272 t_PARAMS_07>::Type Type;
273};
274#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 7
275
276#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 8
277template <std::size_t t_N, class t_FIRST_PARAM, class t_PARAMS_01,
278 class t_PARAMS_02,
279 class t_PARAMS_03,
280 class t_PARAMS_04,
281 class t_PARAMS_05,
282 class t_PARAMS_06,
283 class t_PARAMS_07,
284 class t_PARAMS_08>
285struct NthParameter<t_N, t_FIRST_PARAM, t_PARAMS_01,
286 t_PARAMS_02,
287 t_PARAMS_03,
288 t_PARAMS_04,
289 t_PARAMS_05,
290 t_PARAMS_06,
291 t_PARAMS_07,
292 t_PARAMS_08> {
293
294 typedef typename NthParameter<t_N - 1, t_PARAMS_01,
295 t_PARAMS_02,
296 t_PARAMS_03,
297 t_PARAMS_04,
298 t_PARAMS_05,
299 t_PARAMS_06,
300 t_PARAMS_07,
301 t_PARAMS_08>::Type Type;
302};
303#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 8
304
305#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 9
306template <std::size_t t_N, class t_FIRST_PARAM, class t_PARAMS_01,
307 class t_PARAMS_02,
308 class t_PARAMS_03,
309 class t_PARAMS_04,
310 class t_PARAMS_05,
311 class t_PARAMS_06,
312 class t_PARAMS_07,
313 class t_PARAMS_08,
314 class t_PARAMS_09>
315struct NthParameter<t_N, t_FIRST_PARAM, t_PARAMS_01,
316 t_PARAMS_02,
317 t_PARAMS_03,
318 t_PARAMS_04,
319 t_PARAMS_05,
320 t_PARAMS_06,
321 t_PARAMS_07,
322 t_PARAMS_08,
323 t_PARAMS_09> {
324
325 typedef typename NthParameter<t_N - 1, t_PARAMS_01,
326 t_PARAMS_02,
327 t_PARAMS_03,
328 t_PARAMS_04,
329 t_PARAMS_05,
330 t_PARAMS_06,
331 t_PARAMS_07,
332 t_PARAMS_08,
333 t_PARAMS_09>::Type Type;
334};
335#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 9
336
337#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 10
338template <std::size_t t_N, class t_FIRST_PARAM, class t_PARAMS_01,
339 class t_PARAMS_02,
340 class t_PARAMS_03,
341 class t_PARAMS_04,
342 class t_PARAMS_05,
343 class t_PARAMS_06,
344 class t_PARAMS_07,
345 class t_PARAMS_08,
346 class t_PARAMS_09,
347 class t_PARAMS_10>
348struct NthParameter<t_N, t_FIRST_PARAM, t_PARAMS_01,
349 t_PARAMS_02,
350 t_PARAMS_03,
351 t_PARAMS_04,
352 t_PARAMS_05,
353 t_PARAMS_06,
354 t_PARAMS_07,
355 t_PARAMS_08,
356 t_PARAMS_09,
357 t_PARAMS_10> {
358
359 typedef typename NthParameter<t_N - 1, t_PARAMS_01,
360 t_PARAMS_02,
361 t_PARAMS_03,
362 t_PARAMS_04,
363 t_PARAMS_05,
364 t_PARAMS_06,
365 t_PARAMS_07,
366 t_PARAMS_08,
367 t_PARAMS_09,
368 t_PARAMS_10>::Type Type;
369};
370#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 10
371
372#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 11
373template <std::size_t t_N, class t_FIRST_PARAM, class t_PARAMS_01,
374 class t_PARAMS_02,
375 class t_PARAMS_03,
376 class t_PARAMS_04,
377 class t_PARAMS_05,
378 class t_PARAMS_06,
379 class t_PARAMS_07,
380 class t_PARAMS_08,
381 class t_PARAMS_09,
382 class t_PARAMS_10,
383 class t_PARAMS_11>
384struct NthParameter<t_N, t_FIRST_PARAM, t_PARAMS_01,
385 t_PARAMS_02,
386 t_PARAMS_03,
387 t_PARAMS_04,
388 t_PARAMS_05,
389 t_PARAMS_06,
390 t_PARAMS_07,
391 t_PARAMS_08,
392 t_PARAMS_09,
393 t_PARAMS_10,
394 t_PARAMS_11> {
395
396 typedef typename NthParameter<t_N - 1, t_PARAMS_01,
397 t_PARAMS_02,
398 t_PARAMS_03,
399 t_PARAMS_04,
400 t_PARAMS_05,
401 t_PARAMS_06,
402 t_PARAMS_07,
403 t_PARAMS_08,
404 t_PARAMS_09,
405 t_PARAMS_10,
406 t_PARAMS_11>::Type Type;
407};
408#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 11
409
410#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 12
411template <std::size_t t_N, class t_FIRST_PARAM, class t_PARAMS_01,
412 class t_PARAMS_02,
413 class t_PARAMS_03,
414 class t_PARAMS_04,
415 class t_PARAMS_05,
416 class t_PARAMS_06,
417 class t_PARAMS_07,
418 class t_PARAMS_08,
419 class t_PARAMS_09,
420 class t_PARAMS_10,
421 class t_PARAMS_11,
422 class t_PARAMS_12>
423struct NthParameter<t_N, t_FIRST_PARAM, t_PARAMS_01,
424 t_PARAMS_02,
425 t_PARAMS_03,
426 t_PARAMS_04,
427 t_PARAMS_05,
428 t_PARAMS_06,
429 t_PARAMS_07,
430 t_PARAMS_08,
431 t_PARAMS_09,
432 t_PARAMS_10,
433 t_PARAMS_11,
434 t_PARAMS_12> {
435
436 typedef typename NthParameter<t_N - 1, t_PARAMS_01,
437 t_PARAMS_02,
438 t_PARAMS_03,
439 t_PARAMS_04,
440 t_PARAMS_05,
441 t_PARAMS_06,
442 t_PARAMS_07,
443 t_PARAMS_08,
444 t_PARAMS_09,
445 t_PARAMS_10,
446 t_PARAMS_11,
447 t_PARAMS_12>::Type Type;
448};
449#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 12
450
451#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 13
452template <std::size_t t_N, class t_FIRST_PARAM, class t_PARAMS_01,
453 class t_PARAMS_02,
454 class t_PARAMS_03,
455 class t_PARAMS_04,
456 class t_PARAMS_05,
457 class t_PARAMS_06,
458 class t_PARAMS_07,
459 class t_PARAMS_08,
460 class t_PARAMS_09,
461 class t_PARAMS_10,
462 class t_PARAMS_11,
463 class t_PARAMS_12,
464 class t_PARAMS_13>
465struct NthParameter<t_N, t_FIRST_PARAM, t_PARAMS_01,
466 t_PARAMS_02,
467 t_PARAMS_03,
468 t_PARAMS_04,
469 t_PARAMS_05,
470 t_PARAMS_06,
471 t_PARAMS_07,
472 t_PARAMS_08,
473 t_PARAMS_09,
474 t_PARAMS_10,
475 t_PARAMS_11,
476 t_PARAMS_12,
477 t_PARAMS_13> {
478
479 typedef typename NthParameter<t_N - 1, t_PARAMS_01,
480 t_PARAMS_02,
481 t_PARAMS_03,
482 t_PARAMS_04,
483 t_PARAMS_05,
484 t_PARAMS_06,
485 t_PARAMS_07,
486 t_PARAMS_08,
487 t_PARAMS_09,
488 t_PARAMS_10,
489 t_PARAMS_11,
490 t_PARAMS_12,
491 t_PARAMS_13>::Type Type;
492};
493#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 13
494
495#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 14
496template <std::size_t t_N, class t_FIRST_PARAM, class t_PARAMS_01,
497 class t_PARAMS_02,
498 class t_PARAMS_03,
499 class t_PARAMS_04,
500 class t_PARAMS_05,
501 class t_PARAMS_06,
502 class t_PARAMS_07,
503 class t_PARAMS_08,
504 class t_PARAMS_09,
505 class t_PARAMS_10,
506 class t_PARAMS_11,
507 class t_PARAMS_12,
508 class t_PARAMS_13,
509 class t_PARAMS_14>
510struct NthParameter<t_N, t_FIRST_PARAM, t_PARAMS_01,
511 t_PARAMS_02,
512 t_PARAMS_03,
513 t_PARAMS_04,
514 t_PARAMS_05,
515 t_PARAMS_06,
516 t_PARAMS_07,
517 t_PARAMS_08,
518 t_PARAMS_09,
519 t_PARAMS_10,
520 t_PARAMS_11,
521 t_PARAMS_12,
522 t_PARAMS_13,
523 t_PARAMS_14> {
524
525 typedef typename NthParameter<t_N - 1, t_PARAMS_01,
526 t_PARAMS_02,
527 t_PARAMS_03,
528 t_PARAMS_04,
529 t_PARAMS_05,
530 t_PARAMS_06,
531 t_PARAMS_07,
532 t_PARAMS_08,
533 t_PARAMS_09,
534 t_PARAMS_10,
535 t_PARAMS_11,
536 t_PARAMS_12,
537 t_PARAMS_13,
538 t_PARAMS_14>::Type Type;
539};
540#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 14
541
542#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 15
543template <std::size_t t_N, class t_FIRST_PARAM, class t_PARAMS_01,
544 class t_PARAMS_02,
545 class t_PARAMS_03,
546 class t_PARAMS_04,
547 class t_PARAMS_05,
548 class t_PARAMS_06,
549 class t_PARAMS_07,
550 class t_PARAMS_08,
551 class t_PARAMS_09,
552 class t_PARAMS_10,
553 class t_PARAMS_11,
554 class t_PARAMS_12,
555 class t_PARAMS_13,
556 class t_PARAMS_14,
557 class t_PARAMS_15>
558struct NthParameter<t_N, t_FIRST_PARAM, t_PARAMS_01,
559 t_PARAMS_02,
560 t_PARAMS_03,
561 t_PARAMS_04,
562 t_PARAMS_05,
563 t_PARAMS_06,
564 t_PARAMS_07,
565 t_PARAMS_08,
566 t_PARAMS_09,
567 t_PARAMS_10,
568 t_PARAMS_11,
569 t_PARAMS_12,
570 t_PARAMS_13,
571 t_PARAMS_14,
572 t_PARAMS_15> {
573
574 typedef typename NthParameter<t_N - 1, t_PARAMS_01,
575 t_PARAMS_02,
576 t_PARAMS_03,
577 t_PARAMS_04,
578 t_PARAMS_05,
579 t_PARAMS_06,
580 t_PARAMS_07,
581 t_PARAMS_08,
582 t_PARAMS_09,
583 t_PARAMS_10,
584 t_PARAMS_11,
585 t_PARAMS_12,
586 t_PARAMS_13,
587 t_PARAMS_14,
588 t_PARAMS_15>::Type Type;
589};
590#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 15
591
592
593
594#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 0
595template <class t_FIRST_PARAM>
596struct NthParameter<0, t_FIRST_PARAM> {
597
598 typedef t_FIRST_PARAM Type;
599};
600#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 0
601
602#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 1
603template <class t_FIRST_PARAM, class t_PARAMS_01>
604struct NthParameter<0, t_FIRST_PARAM, t_PARAMS_01> {
605
606 typedef t_FIRST_PARAM Type;
607};
608#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 1
609
610#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 2
611template <class t_FIRST_PARAM, class t_PARAMS_01,
612 class t_PARAMS_02>
613struct NthParameter<0, t_FIRST_PARAM, t_PARAMS_01,
614 t_PARAMS_02> {
615
616 typedef t_FIRST_PARAM Type;
617};
618#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 2
619
620#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 3
621template <class t_FIRST_PARAM, class t_PARAMS_01,
622 class t_PARAMS_02,
623 class t_PARAMS_03>
624struct NthParameter<0, t_FIRST_PARAM, t_PARAMS_01,
625 t_PARAMS_02,
626 t_PARAMS_03> {
627
628 typedef t_FIRST_PARAM Type;
629};
630#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 3
631
632#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 4
633template <class t_FIRST_PARAM, class t_PARAMS_01,
634 class t_PARAMS_02,
635 class t_PARAMS_03,
636 class t_PARAMS_04>
637struct NthParameter<0, t_FIRST_PARAM, t_PARAMS_01,
638 t_PARAMS_02,
639 t_PARAMS_03,
640 t_PARAMS_04> {
641
642 typedef t_FIRST_PARAM Type;
643};
644#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 4
645
646#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 5
647template <class t_FIRST_PARAM, class t_PARAMS_01,
648 class t_PARAMS_02,
649 class t_PARAMS_03,
650 class t_PARAMS_04,
651 class t_PARAMS_05>
652struct NthParameter<0, t_FIRST_PARAM, t_PARAMS_01,
653 t_PARAMS_02,
654 t_PARAMS_03,
655 t_PARAMS_04,
656 t_PARAMS_05> {
657
658 typedef t_FIRST_PARAM Type;
659};
660#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 5
661
662#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 6
663template <class t_FIRST_PARAM, class t_PARAMS_01,
664 class t_PARAMS_02,
665 class t_PARAMS_03,
666 class t_PARAMS_04,
667 class t_PARAMS_05,
668 class t_PARAMS_06>
669struct NthParameter<0, t_FIRST_PARAM, t_PARAMS_01,
670 t_PARAMS_02,
671 t_PARAMS_03,
672 t_PARAMS_04,
673 t_PARAMS_05,
674 t_PARAMS_06> {
675
676 typedef t_FIRST_PARAM Type;
677};
678#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 6
679
680#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 7
681template <class t_FIRST_PARAM, class t_PARAMS_01,
682 class t_PARAMS_02,
683 class t_PARAMS_03,
684 class t_PARAMS_04,
685 class t_PARAMS_05,
686 class t_PARAMS_06,
687 class t_PARAMS_07>
688struct NthParameter<0, t_FIRST_PARAM, t_PARAMS_01,
689 t_PARAMS_02,
690 t_PARAMS_03,
691 t_PARAMS_04,
692 t_PARAMS_05,
693 t_PARAMS_06,
694 t_PARAMS_07> {
695
696 typedef t_FIRST_PARAM Type;
697};
698#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 7
699
700#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 8
701template <class t_FIRST_PARAM, class t_PARAMS_01,
702 class t_PARAMS_02,
703 class t_PARAMS_03,
704 class t_PARAMS_04,
705 class t_PARAMS_05,
706 class t_PARAMS_06,
707 class t_PARAMS_07,
708 class t_PARAMS_08>
709struct NthParameter<0, t_FIRST_PARAM, t_PARAMS_01,
710 t_PARAMS_02,
711 t_PARAMS_03,
712 t_PARAMS_04,
713 t_PARAMS_05,
714 t_PARAMS_06,
715 t_PARAMS_07,
716 t_PARAMS_08> {
717
718 typedef t_FIRST_PARAM Type;
719};
720#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 8
721
722#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 9
723template <class t_FIRST_PARAM, class t_PARAMS_01,
724 class t_PARAMS_02,
725 class t_PARAMS_03,
726 class t_PARAMS_04,
727 class t_PARAMS_05,
728 class t_PARAMS_06,
729 class t_PARAMS_07,
730 class t_PARAMS_08,
731 class t_PARAMS_09>
732struct NthParameter<0, t_FIRST_PARAM, t_PARAMS_01,
733 t_PARAMS_02,
734 t_PARAMS_03,
735 t_PARAMS_04,
736 t_PARAMS_05,
737 t_PARAMS_06,
738 t_PARAMS_07,
739 t_PARAMS_08,
740 t_PARAMS_09> {
741
742 typedef t_FIRST_PARAM Type;
743};
744#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 9
745
746#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 10
747template <class t_FIRST_PARAM, class t_PARAMS_01,
748 class t_PARAMS_02,
749 class t_PARAMS_03,
750 class t_PARAMS_04,
751 class t_PARAMS_05,
752 class t_PARAMS_06,
753 class t_PARAMS_07,
754 class t_PARAMS_08,
755 class t_PARAMS_09,
756 class t_PARAMS_10>
757struct NthParameter<0, t_FIRST_PARAM, t_PARAMS_01,
758 t_PARAMS_02,
759 t_PARAMS_03,
760 t_PARAMS_04,
761 t_PARAMS_05,
762 t_PARAMS_06,
763 t_PARAMS_07,
764 t_PARAMS_08,
765 t_PARAMS_09,
766 t_PARAMS_10> {
767
768 typedef t_FIRST_PARAM Type;
769};
770#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 10
771
772#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 11
773template <class t_FIRST_PARAM, class t_PARAMS_01,
774 class t_PARAMS_02,
775 class t_PARAMS_03,
776 class t_PARAMS_04,
777 class t_PARAMS_05,
778 class t_PARAMS_06,
779 class t_PARAMS_07,
780 class t_PARAMS_08,
781 class t_PARAMS_09,
782 class t_PARAMS_10,
783 class t_PARAMS_11>
784struct NthParameter<0, t_FIRST_PARAM, t_PARAMS_01,
785 t_PARAMS_02,
786 t_PARAMS_03,
787 t_PARAMS_04,
788 t_PARAMS_05,
789 t_PARAMS_06,
790 t_PARAMS_07,
791 t_PARAMS_08,
792 t_PARAMS_09,
793 t_PARAMS_10,
794 t_PARAMS_11> {
795
796 typedef t_FIRST_PARAM Type;
797};
798#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 11
799
800#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 12
801template <class t_FIRST_PARAM, class t_PARAMS_01,
802 class t_PARAMS_02,
803 class t_PARAMS_03,
804 class t_PARAMS_04,
805 class t_PARAMS_05,
806 class t_PARAMS_06,
807 class t_PARAMS_07,
808 class t_PARAMS_08,
809 class t_PARAMS_09,
810 class t_PARAMS_10,
811 class t_PARAMS_11,
812 class t_PARAMS_12>
813struct NthParameter<0, t_FIRST_PARAM, t_PARAMS_01,
814 t_PARAMS_02,
815 t_PARAMS_03,
816 t_PARAMS_04,
817 t_PARAMS_05,
818 t_PARAMS_06,
819 t_PARAMS_07,
820 t_PARAMS_08,
821 t_PARAMS_09,
822 t_PARAMS_10,
823 t_PARAMS_11,
824 t_PARAMS_12> {
825
826 typedef t_FIRST_PARAM Type;
827};
828#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 12
829
830#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 13
831template <class t_FIRST_PARAM, class t_PARAMS_01,
832 class t_PARAMS_02,
833 class t_PARAMS_03,
834 class t_PARAMS_04,
835 class t_PARAMS_05,
836 class t_PARAMS_06,
837 class t_PARAMS_07,
838 class t_PARAMS_08,
839 class t_PARAMS_09,
840 class t_PARAMS_10,
841 class t_PARAMS_11,
842 class t_PARAMS_12,
843 class t_PARAMS_13>
844struct NthParameter<0, t_FIRST_PARAM, t_PARAMS_01,
845 t_PARAMS_02,
846 t_PARAMS_03,
847 t_PARAMS_04,
848 t_PARAMS_05,
849 t_PARAMS_06,
850 t_PARAMS_07,
851 t_PARAMS_08,
852 t_PARAMS_09,
853 t_PARAMS_10,
854 t_PARAMS_11,
855 t_PARAMS_12,
856 t_PARAMS_13> {
857
858 typedef t_FIRST_PARAM Type;
859};
860#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 13
861
862#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 14
863template <class t_FIRST_PARAM, class t_PARAMS_01,
864 class t_PARAMS_02,
865 class t_PARAMS_03,
866 class t_PARAMS_04,
867 class t_PARAMS_05,
868 class t_PARAMS_06,
869 class t_PARAMS_07,
870 class t_PARAMS_08,
871 class t_PARAMS_09,
872 class t_PARAMS_10,
873 class t_PARAMS_11,
874 class t_PARAMS_12,
875 class t_PARAMS_13,
876 class t_PARAMS_14>
877struct NthParameter<0, t_FIRST_PARAM, t_PARAMS_01,
878 t_PARAMS_02,
879 t_PARAMS_03,
880 t_PARAMS_04,
881 t_PARAMS_05,
882 t_PARAMS_06,
883 t_PARAMS_07,
884 t_PARAMS_08,
885 t_PARAMS_09,
886 t_PARAMS_10,
887 t_PARAMS_11,
888 t_PARAMS_12,
889 t_PARAMS_13,
890 t_PARAMS_14> {
891
892 typedef t_FIRST_PARAM Type;
893};
894#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 14
895
896#if BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 15
897template <class t_FIRST_PARAM, class t_PARAMS_01,
898 class t_PARAMS_02,
899 class t_PARAMS_03,
900 class t_PARAMS_04,
901 class t_PARAMS_05,
902 class t_PARAMS_06,
903 class t_PARAMS_07,
904 class t_PARAMS_08,
905 class t_PARAMS_09,
906 class t_PARAMS_10,
907 class t_PARAMS_11,
908 class t_PARAMS_12,
909 class t_PARAMS_13,
910 class t_PARAMS_14,
911 class t_PARAMS_15>
912struct NthParameter<0, t_FIRST_PARAM, t_PARAMS_01,
913 t_PARAMS_02,
914 t_PARAMS_03,
915 t_PARAMS_04,
916 t_PARAMS_05,
917 t_PARAMS_06,
918 t_PARAMS_07,
919 t_PARAMS_08,
920 t_PARAMS_09,
921 t_PARAMS_10,
922 t_PARAMS_11,
923 t_PARAMS_12,
924 t_PARAMS_13,
925 t_PARAMS_14,
926 t_PARAMS_15> {
927
928 typedef t_FIRST_PARAM Type;
929};
930#endif // BSLMF_NTHPARAMETER_VARIADIC_LIMIT_A >= 15
931
932#else
933// The generated code below is a workaround for the absence of perfect
934// forwarding in some compilers.
935
936template <std::size_t t_N,
937 class t_FIRST_PARAM = NthParameter_Sentinel,
938 class... t_PARAMS>
939struct NthParameter {
940
941 typedef typename NthParameter<t_N - 1, t_PARAMS...>::Type Type;
942};
943
944
945template <class t_FIRST_PARAM, class... t_PARAMS>
946struct NthParameter<0, t_FIRST_PARAM, t_PARAMS...> {
947
948 typedef t_FIRST_PARAM Type;
949};
950
951// }}} END GENERATED CODE
952#endif
953
954/// Specialization of `NthParameter` for when `t_N` exceeds the actual
955/// number of parameters.
956template <>
957struct NthParameter<0, NthParameter_Sentinel> {
958
959#ifdef BSLS_COMPILERFEATURES_SUPPORT_VARIADIC_TEMPLATES
960 // No 'Type' member is defined.
961#else
962 // There are no dependent parameters because this is a full specialization.
963 // When used in another simulated variadic template, the compiler may
964 // attempt to evaluate the 'Type' member even when that client is not
965 // actually instantiated. To avoid a spurious compilation error, we must
966 // therefore make sure that 'Type' is defined, even if it is defined as an
967 // incomplete class.
968 typedef NthParameter_Sentinel Type;
969#endif
970};
971
972} // close package namespace
973
974
975#else // if ! defined(DEFINED_BSLMF_NTHPARAMETER_H)
976# error Not valid except when included from bslmf_nthparameter.h
977#endif // ! defined(COMPILING_BSLMF_NTHPARAMETER_H)
978
979#endif // ! defined(INCLUDED_BSLMF_NTHPARAMETER_CPP03)
980
981// ----------------------------------------------------------------------------
982// Copyright 2019 Bloomberg Finance L.P.
983//
984// Licensed under the Apache License, Version 2.0 (the "License");
985// you may not use this file except in compliance with the License.
986// You may obtain a copy of the License at
987//
988// http://www.apache.org/licenses/LICENSE-2.0
989//
990// Unless required by applicable law or agreed to in writing, software
991// distributed under the License is distributed on an "AS IS" BASIS,
992// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
993// See the License for the specific language governing permissions and
994// limitations under the License.
995// ----------------------------- END-OF-FILE ----------------------------------
996
997/** @} */
998/** @} */
999/** @} */
Definition bdlbb_blob.h:576
NthParameter< t_N-1, t_PARAMS... >::Type Type
Definition bslmf_nthparameter.h:140