11#ifndef INCLUDED_BSLMA_CONSTRUCTIONUTIL_CPP03
12#define INCLUDED_BSLMA_CONSTRUCTIONUTIL_CPP03
63#ifdef COMPILING_BSLMA_CONSTRUCTIONUTIL_H
76#if defined(BSLS_PLATFORM_CMP_IBM) && BSLS_PLATFORM_CMP_VERSION < 0x0d01
77 #define BSLMA_CONSTRUCTIONUTIL_XLC_PLACEMENT_NEW_FIX \
78 BSLS_PERFORMANCEHINT_OPTIMIZATION_FENCE
80 #define BSLMA_CONSTRUCTIONUTIL_XLC_PLACEMENT_NEW_FIX
83struct ConstructionUtil_Imp;
91struct ConstructionUtil {
98 typedef ConstructionUtil_Imp Imp;
112 template <
class TARGET_TYPE,
class ALLOCATOR>
113 static void construct(TARGET_TYPE *address,
const ALLOCATOR& allocator);
115#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
118#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
119#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT 13
121#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A
122#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
124# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
125#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 0
126 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
127 static void construct(TARGET_TYPE *address,
128 const ALLOCATOR& allocator,
132#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 1
133 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
134 static void construct(TARGET_TYPE *address,
135 const ALLOCATOR& allocator,
140#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 2
141 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
143 static void construct(TARGET_TYPE *address,
144 const ALLOCATOR& allocator,
150#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 3
151 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
154 static void construct(TARGET_TYPE *address,
155 const ALLOCATOR& allocator,
162#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 4
163 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
167 static void construct(TARGET_TYPE *address,
168 const ALLOCATOR& allocator,
176#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 5
177 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
182 static void construct(TARGET_TYPE *address,
183 const ALLOCATOR& allocator,
192#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 6
193 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
199 static void construct(TARGET_TYPE *address,
200 const ALLOCATOR& allocator,
210#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 7
211 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
218 static void construct(TARGET_TYPE *address,
219 const ALLOCATOR& allocator,
230#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 8
231 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
239 static void construct(TARGET_TYPE *address,
240 const ALLOCATOR& allocator,
252#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 9
253 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
262 static void construct(TARGET_TYPE *address,
263 const ALLOCATOR& allocator,
276#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 10
277 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
287 static void construct(TARGET_TYPE *address,
288 const ALLOCATOR& allocator,
302#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 11
303 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
314 static void construct(TARGET_TYPE *address,
315 const ALLOCATOR& allocator,
330#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 12
331 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
343 static void construct(TARGET_TYPE *address,
344 const ALLOCATOR& allocator,
360#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 13
361 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
374 static void construct(TARGET_TYPE *address,
375 const ALLOCATOR& allocator,
394#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 0
395 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
396 static void construct(TARGET_TYPE *address,
397 const ALLOCATOR& allocator,
401#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 1
402 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
403 static void construct(TARGET_TYPE *address,
404 const ALLOCATOR& allocator,
409#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 2
410 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
412 static void construct(TARGET_TYPE *address,
413 const ALLOCATOR& allocator,
419#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 3
420 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
423 static void construct(TARGET_TYPE *address,
424 const ALLOCATOR& allocator,
431#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 4
432 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
436 static void construct(TARGET_TYPE *address,
437 const ALLOCATOR& allocator,
445#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 5
446 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
451 static void construct(TARGET_TYPE *address,
452 const ALLOCATOR& allocator,
461#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 6
462 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
468 static void construct(TARGET_TYPE *address,
469 const ALLOCATOR& allocator,
479#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 7
480 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
487 static void construct(TARGET_TYPE *address,
488 const ALLOCATOR& allocator,
499#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 8
500 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
508 static void construct(TARGET_TYPE *address,
509 const ALLOCATOR& allocator,
521#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 9
522 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
531 static void construct(TARGET_TYPE *address,
532 const ALLOCATOR& allocator,
545#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 10
546 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
556 static void construct(TARGET_TYPE *address,
557 const ALLOCATOR& allocator,
571#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 11
572 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
583 static void construct(TARGET_TYPE *address,
584 const ALLOCATOR& allocator,
599#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 12
600 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
612 static void construct(TARGET_TYPE *address,
613 const ALLOCATOR& allocator,
629#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 13
630 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
643 static void construct(TARGET_TYPE *address,
644 const ALLOCATOR& allocator,
664# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
665 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
666 static void construct(TARGET_TYPE *address,
667 const ALLOCATOR& allocator,
672 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
673 static void construct(TARGET_TYPE *address,
674 const ALLOCATOR& allocator,
697 template <
class TARGET_TYPE,
class ALLOCATOR>
699 const ALLOCATOR& allocator,
700 TARGET_TYPE *original);
702#if defined(BSLS_COMPILERFEATURES_GUARANTEED_COPY_ELISION)
712 template <
class TARGET_TYPE,
class ALLOCATOR>
713 static TARGET_TYPE make(
const ALLOCATOR& allocator);
715#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
718#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
719#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT 13
721#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B
722#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
724# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
725#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 0
726 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
727 static TARGET_TYPE make(
const ALLOCATOR& allocator,
731#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 1
732 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
733 static TARGET_TYPE make(
const ALLOCATOR& allocator,
738#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 2
739 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
741 static TARGET_TYPE make(
const ALLOCATOR& allocator,
747#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 3
748 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
751 static TARGET_TYPE make(
const ALLOCATOR& allocator,
758#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 4
759 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
763 static TARGET_TYPE make(
const ALLOCATOR& allocator,
771#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 5
772 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
777 static TARGET_TYPE make(
const ALLOCATOR& allocator,
786#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 6
787 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
793 static TARGET_TYPE make(
const ALLOCATOR& allocator,
803#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 7
804 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
811 static TARGET_TYPE make(
const ALLOCATOR& allocator,
822#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 8
823 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
831 static TARGET_TYPE make(
const ALLOCATOR& allocator,
843#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 9
844 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
853 static TARGET_TYPE make(
const ALLOCATOR& allocator,
866#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 10
867 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
877 static TARGET_TYPE make(
const ALLOCATOR& allocator,
891#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 11
892 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
903 static TARGET_TYPE make(
const ALLOCATOR& allocator,
918#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 12
919 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
931 static TARGET_TYPE make(
const ALLOCATOR& allocator,
947#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 13
948 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
961 static TARGET_TYPE make(
const ALLOCATOR& allocator,
980#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 0
981 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
982 static TARGET_TYPE make(
const ALLOCATOR& allocator,
986#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 1
987 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
988 static TARGET_TYPE make(
const ALLOCATOR& allocator,
993#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 2
994 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
996 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1002#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 3
1003 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1006 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1013#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 4
1014 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1018 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1026#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 5
1027 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1032 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1041#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 6
1042 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1048 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1058#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 7
1059 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1066 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1077#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 8
1078 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1086 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1098#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 9
1099 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1108 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1121#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 10
1122 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1132 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1146#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 11
1147 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1158 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1173#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 12
1174 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1186 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1202#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 13
1203 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1216 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1236# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
1237 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
1238 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1243 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
1244 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1263struct ConstructionUtil_Imp {
1287 template <
class TARGET_TYPE,
class ALLOCATOR>
1289 TARGET_TYPE *address,
1290 const ALLOCATOR& allocator,
1292 template <
class TARGET_TYPE,
class ALLOCATOR>
1294 TARGET_TYPE *address,
1295 const ALLOCATOR& allocator,
1297 template <
class TARGET_TYPE,
class ALLOCATOR>
1299 TARGET_TYPE *address,
1300 const ALLOCATOR& allocator,
1303#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
1306#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
1307#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT 13
1309#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C
1310#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
1312# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
1313#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 0
1314 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
1316 TARGET_TYPE *address,
1317 const ALLOCATOR& allocator,
1322#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 1
1323 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
1325 TARGET_TYPE *address,
1326 const ALLOCATOR& allocator,
1332#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 2
1333 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1336 TARGET_TYPE *address,
1337 const ALLOCATOR& allocator,
1344#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 3
1345 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1349 TARGET_TYPE *address,
1350 const ALLOCATOR& allocator,
1358#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 4
1359 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1364 TARGET_TYPE *address,
1365 const ALLOCATOR& allocator,
1374#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 5
1375 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1381 TARGET_TYPE *address,
1382 const ALLOCATOR& allocator,
1392#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 6
1393 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1400 TARGET_TYPE *address,
1401 const ALLOCATOR& allocator,
1412#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 7
1413 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1421 TARGET_TYPE *address,
1422 const ALLOCATOR& allocator,
1434#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 8
1435 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1444 TARGET_TYPE *address,
1445 const ALLOCATOR& allocator,
1458#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 9
1459 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1469 TARGET_TYPE *address,
1470 const ALLOCATOR& allocator,
1484#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 10
1485 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1496 TARGET_TYPE *address,
1497 const ALLOCATOR& allocator,
1512#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 11
1513 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1525 TARGET_TYPE *address,
1526 const ALLOCATOR& allocator,
1542#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 12
1543 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1556 TARGET_TYPE *address,
1557 const ALLOCATOR& allocator,
1574#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 13
1575 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1589 TARGET_TYPE *address,
1590 const ALLOCATOR& allocator,
1608#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 0
1609 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
1611 TARGET_TYPE *address,
1612 const ALLOCATOR& allocator,
1617#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 1
1618 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
1620 TARGET_TYPE *address,
1621 const ALLOCATOR& allocator,
1627#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 2
1628 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1631 TARGET_TYPE *address,
1632 const ALLOCATOR& allocator,
1639#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 3
1640 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1644 TARGET_TYPE *address,
1645 const ALLOCATOR& allocator,
1653#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 4
1654 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1659 TARGET_TYPE *address,
1660 const ALLOCATOR& allocator,
1669#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 5
1670 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1676 TARGET_TYPE *address,
1677 const ALLOCATOR& allocator,
1687#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 6
1688 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1695 TARGET_TYPE *address,
1696 const ALLOCATOR& allocator,
1707#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 7
1708 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1716 TARGET_TYPE *address,
1717 const ALLOCATOR& allocator,
1729#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 8
1730 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1739 TARGET_TYPE *address,
1740 const ALLOCATOR& allocator,
1753#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 9
1754 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1764 TARGET_TYPE *address,
1765 const ALLOCATOR& allocator,
1779#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 10
1780 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1791 TARGET_TYPE *address,
1792 const ALLOCATOR& allocator,
1807#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 11
1808 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1820 TARGET_TYPE *address,
1821 const ALLOCATOR& allocator,
1837#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 12
1838 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1851 TARGET_TYPE *address,
1852 const ALLOCATOR& allocator,
1869#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 13
1870 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1884 TARGET_TYPE *address,
1885 const ALLOCATOR& allocator,
1903#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 0
1904 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
1906 TARGET_TYPE *address,
1907 const ALLOCATOR& allocator,
1912#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 1
1913 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
1915 TARGET_TYPE *address,
1916 const ALLOCATOR& allocator,
1922#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 2
1923 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1926 TARGET_TYPE *address,
1927 const ALLOCATOR& allocator,
1934#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 3
1935 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1939 TARGET_TYPE *address,
1940 const ALLOCATOR& allocator,
1948#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 4
1949 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1954 TARGET_TYPE *address,
1955 const ALLOCATOR& allocator,
1964#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 5
1965 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1971 TARGET_TYPE *address,
1972 const ALLOCATOR& allocator,
1982#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 6
1983 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1990 TARGET_TYPE *address,
1991 const ALLOCATOR& allocator,
2002#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 7
2003 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2011 TARGET_TYPE *address,
2012 const ALLOCATOR& allocator,
2024#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 8
2025 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2034 TARGET_TYPE *address,
2035 const ALLOCATOR& allocator,
2048#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 9
2049 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2059 TARGET_TYPE *address,
2060 const ALLOCATOR& allocator,
2074#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 10
2075 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2086 TARGET_TYPE *address,
2087 const ALLOCATOR& allocator,
2102#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 11
2103 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2115 TARGET_TYPE *address,
2116 const ALLOCATOR& allocator,
2132#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 12
2133 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2146 TARGET_TYPE *address,
2147 const ALLOCATOR& allocator,
2164#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 13
2165 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2179 TARGET_TYPE *address,
2180 const ALLOCATOR& allocator,
2200#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 0
2201 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
2203 TARGET_TYPE *address,
2204 const ALLOCATOR& allocator,
2209#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 1
2210 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
2212 TARGET_TYPE *address,
2213 const ALLOCATOR& allocator,
2219#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 2
2220 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2223 TARGET_TYPE *address,
2224 const ALLOCATOR& allocator,
2231#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 3
2232 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2236 TARGET_TYPE *address,
2237 const ALLOCATOR& allocator,
2245#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 4
2246 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2251 TARGET_TYPE *address,
2252 const ALLOCATOR& allocator,
2261#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 5
2262 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2268 TARGET_TYPE *address,
2269 const ALLOCATOR& allocator,
2279#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 6
2280 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2287 TARGET_TYPE *address,
2288 const ALLOCATOR& allocator,
2299#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 7
2300 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2308 TARGET_TYPE *address,
2309 const ALLOCATOR& allocator,
2321#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 8
2322 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2331 TARGET_TYPE *address,
2332 const ALLOCATOR& allocator,
2345#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 9
2346 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2356 TARGET_TYPE *address,
2357 const ALLOCATOR& allocator,
2371#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 10
2372 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2383 TARGET_TYPE *address,
2384 const ALLOCATOR& allocator,
2399#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 11
2400 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2412 TARGET_TYPE *address,
2413 const ALLOCATOR& allocator,
2429#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 12
2430 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2443 TARGET_TYPE *address,
2444 const ALLOCATOR& allocator,
2461#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 13
2462 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2476 TARGET_TYPE *address,
2477 const ALLOCATOR& allocator,
2495#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 0
2496 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
2498 TARGET_TYPE *address,
2499 const ALLOCATOR& allocator,
2504#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 1
2505 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
2507 TARGET_TYPE *address,
2508 const ALLOCATOR& allocator,
2514#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 2
2515 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2518 TARGET_TYPE *address,
2519 const ALLOCATOR& allocator,
2526#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 3
2527 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2531 TARGET_TYPE *address,
2532 const ALLOCATOR& allocator,
2540#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 4
2541 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2546 TARGET_TYPE *address,
2547 const ALLOCATOR& allocator,
2556#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 5
2557 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2563 TARGET_TYPE *address,
2564 const ALLOCATOR& allocator,
2574#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 6
2575 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2582 TARGET_TYPE *address,
2583 const ALLOCATOR& allocator,
2594#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 7
2595 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2603 TARGET_TYPE *address,
2604 const ALLOCATOR& allocator,
2616#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 8
2617 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2626 TARGET_TYPE *address,
2627 const ALLOCATOR& allocator,
2640#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 9
2641 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2651 TARGET_TYPE *address,
2652 const ALLOCATOR& allocator,
2666#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 10
2667 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2678 TARGET_TYPE *address,
2679 const ALLOCATOR& allocator,
2694#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 11
2695 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2707 TARGET_TYPE *address,
2708 const ALLOCATOR& allocator,
2724#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 12
2725 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2738 TARGET_TYPE *address,
2739 const ALLOCATOR& allocator,
2756#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 13
2757 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2771 TARGET_TYPE *address,
2772 const ALLOCATOR& allocator,
2790#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 0
2791 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
2793 TARGET_TYPE *address,
2794 const ALLOCATOR& allocator,
2799#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 1
2800 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
2802 TARGET_TYPE *address,
2803 const ALLOCATOR& allocator,
2809#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 2
2810 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2813 TARGET_TYPE *address,
2814 const ALLOCATOR& allocator,
2821#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 3
2822 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2826 TARGET_TYPE *address,
2827 const ALLOCATOR& allocator,
2835#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 4
2836 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2841 TARGET_TYPE *address,
2842 const ALLOCATOR& allocator,
2851#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 5
2852 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2858 TARGET_TYPE *address,
2859 const ALLOCATOR& allocator,
2869#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 6
2870 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2877 TARGET_TYPE *address,
2878 const ALLOCATOR& allocator,
2889#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 7
2890 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2898 TARGET_TYPE *address,
2899 const ALLOCATOR& allocator,
2911#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 8
2912 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2921 TARGET_TYPE *address,
2922 const ALLOCATOR& allocator,
2935#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 9
2936 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2946 TARGET_TYPE *address,
2947 const ALLOCATOR& allocator,
2961#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 10
2962 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2973 TARGET_TYPE *address,
2974 const ALLOCATOR& allocator,
2989#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 11
2990 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3002 TARGET_TYPE *address,
3003 const ALLOCATOR& allocator,
3019#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 12
3020 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3033 TARGET_TYPE *address,
3034 const ALLOCATOR& allocator,
3051#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 13
3052 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3066 TARGET_TYPE *address,
3067 const ALLOCATOR& allocator,
3088# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
3089 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
3091 TARGET_TYPE *address,
3092 const ALLOCATOR& allocator,
3096 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
3098 TARGET_TYPE *address,
3099 const ALLOCATOR& allocator,
3103 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
3105 TARGET_TYPE *address,
3106 const ALLOCATOR& allocator,
3112 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
3114 TARGET_TYPE *address,
3115 const ALLOCATOR& allocator,
3119 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
3121 TARGET_TYPE *address,
3122 const ALLOCATOR& allocator,
3126 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
3128 TARGET_TYPE *address,
3129 const ALLOCATOR& allocator,
3143 template <
class TARGET_TYPE,
class ALLOCATOR>
3145 TARGET_TYPE *address,
3146 const ALLOCATOR& allocator,
3148 TARGET_TYPE *original);
3163 template <
class TARGET_TYPE,
class ALLOCATOR>
3165 TARGET_TYPE *address,
3166 const ALLOCATOR& allocator,
3168 TARGET_TYPE *original);
3170#if defined(BSLS_COMPILERFEATURES_GUARANTEED_COPY_ELISION)
3176 template <
class TARGET_TYPE,
class ALLOCATOR>
3177 static TARGET_TYPE make(
3178 const ALLOCATOR& allocator,
3180 template <
class TARGET_TYPE,
class ALLOCATOR>
3181 static TARGET_TYPE make(
3182 const ALLOCATOR& allocator,
3184 template <
class TARGET_TYPE,
class ALLOCATOR>
3185 static TARGET_TYPE make(
3186 const ALLOCATOR& allocator,
3189#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
3192#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
3193#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT 13
3195#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D
3196#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
3198# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
3199#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 0
3200 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
3201 static TARGET_TYPE make(
3202 const ALLOCATOR& allocator,
3207#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 1
3208 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
3209 static TARGET_TYPE make(
3210 const ALLOCATOR& allocator,
3216#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 2
3217 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3219 static TARGET_TYPE make(
3220 const ALLOCATOR& allocator,
3227#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 3
3228 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3231 static TARGET_TYPE make(
3232 const ALLOCATOR& allocator,
3240#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 4
3241 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3245 static TARGET_TYPE make(
3246 const ALLOCATOR& allocator,
3255#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 5
3256 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3261 static TARGET_TYPE make(
3262 const ALLOCATOR& allocator,
3272#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 6
3273 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3279 static TARGET_TYPE make(
3280 const ALLOCATOR& allocator,
3291#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 7
3292 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3299 static TARGET_TYPE make(
3300 const ALLOCATOR& allocator,
3312#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 8
3313 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3321 static TARGET_TYPE make(
3322 const ALLOCATOR& allocator,
3335#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 9
3336 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3345 static TARGET_TYPE make(
3346 const ALLOCATOR& allocator,
3360#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 10
3361 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3371 static TARGET_TYPE make(
3372 const ALLOCATOR& allocator,
3387#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 11
3388 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3399 static TARGET_TYPE make(
3400 const ALLOCATOR& allocator,
3416#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 12
3417 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3429 static TARGET_TYPE make(
3430 const ALLOCATOR& allocator,
3447#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 13
3448 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3461 static TARGET_TYPE make(
3462 const ALLOCATOR& allocator,
3480#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 0
3481 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
3482 static TARGET_TYPE make(
3483 const ALLOCATOR& allocator,
3488#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 1
3489 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
3490 static TARGET_TYPE make(
3491 const ALLOCATOR& allocator,
3497#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 2
3498 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3500 static TARGET_TYPE make(
3501 const ALLOCATOR& allocator,
3508#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 3
3509 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3512 static TARGET_TYPE make(
3513 const ALLOCATOR& allocator,
3521#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 4
3522 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3526 static TARGET_TYPE make(
3527 const ALLOCATOR& allocator,
3536#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 5
3537 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3542 static TARGET_TYPE make(
3543 const ALLOCATOR& allocator,
3553#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 6
3554 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3560 static TARGET_TYPE make(
3561 const ALLOCATOR& allocator,
3572#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 7
3573 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3580 static TARGET_TYPE make(
3581 const ALLOCATOR& allocator,
3593#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 8
3594 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3602 static TARGET_TYPE make(
3603 const ALLOCATOR& allocator,
3616#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 9
3617 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3626 static TARGET_TYPE make(
3627 const ALLOCATOR& allocator,
3641#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 10
3642 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3652 static TARGET_TYPE make(
3653 const ALLOCATOR& allocator,
3668#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 11
3669 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3680 static TARGET_TYPE make(
3681 const ALLOCATOR& allocator,
3697#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 12
3698 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3710 static TARGET_TYPE make(
3711 const ALLOCATOR& allocator,
3728#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 13
3729 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3742 static TARGET_TYPE make(
3743 const ALLOCATOR& allocator,
3761#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 0
3762 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
3763 static TARGET_TYPE make(
3764 const ALLOCATOR& allocator,
3769#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 1
3770 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
3771 static TARGET_TYPE make(
3772 const ALLOCATOR& allocator,
3778#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 2
3779 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3781 static TARGET_TYPE make(
3782 const ALLOCATOR& allocator,
3789#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 3
3790 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3793 static TARGET_TYPE make(
3794 const ALLOCATOR& allocator,
3802#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 4
3803 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3807 static TARGET_TYPE make(
3808 const ALLOCATOR& allocator,
3817#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 5
3818 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3823 static TARGET_TYPE make(
3824 const ALLOCATOR& allocator,
3834#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 6
3835 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3841 static TARGET_TYPE make(
3842 const ALLOCATOR& allocator,
3853#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 7
3854 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3861 static TARGET_TYPE make(
3862 const ALLOCATOR& allocator,
3874#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 8
3875 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3883 static TARGET_TYPE make(
3884 const ALLOCATOR& allocator,
3897#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 9
3898 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3907 static TARGET_TYPE make(
3908 const ALLOCATOR& allocator,
3922#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 10
3923 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3933 static TARGET_TYPE make(
3934 const ALLOCATOR& allocator,
3949#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 11
3950 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3961 static TARGET_TYPE make(
3962 const ALLOCATOR& allocator,
3978#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 12
3979 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3991 static TARGET_TYPE make(
3992 const ALLOCATOR& allocator,
4009#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 13
4010 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4023 static TARGET_TYPE make(
4024 const ALLOCATOR& allocator,
4044#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 0
4045 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
4046 static TARGET_TYPE make(
4047 const ALLOCATOR& allocator,
4052#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 1
4053 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
4054 static TARGET_TYPE make(
4055 const ALLOCATOR& allocator,
4061#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 2
4062 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4064 static TARGET_TYPE make(
4065 const ALLOCATOR& allocator,
4072#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 3
4073 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4076 static TARGET_TYPE make(
4077 const ALLOCATOR& allocator,
4085#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 4
4086 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4090 static TARGET_TYPE make(
4091 const ALLOCATOR& allocator,
4100#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 5
4101 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4106 static TARGET_TYPE make(
4107 const ALLOCATOR& allocator,
4117#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 6
4118 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4124 static TARGET_TYPE make(
4125 const ALLOCATOR& allocator,
4136#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 7
4137 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4144 static TARGET_TYPE make(
4145 const ALLOCATOR& allocator,
4157#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 8
4158 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4166 static TARGET_TYPE make(
4167 const ALLOCATOR& allocator,
4180#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 9
4181 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4190 static TARGET_TYPE make(
4191 const ALLOCATOR& allocator,
4205#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 10
4206 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4216 static TARGET_TYPE make(
4217 const ALLOCATOR& allocator,
4232#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 11
4233 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4244 static TARGET_TYPE make(
4245 const ALLOCATOR& allocator,
4261#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 12
4262 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4274 static TARGET_TYPE make(
4275 const ALLOCATOR& allocator,
4292#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 13
4293 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4306 static TARGET_TYPE make(
4307 const ALLOCATOR& allocator,
4325#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 0
4326 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
4327 static TARGET_TYPE make(
4328 const ALLOCATOR& allocator,
4333#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 1
4334 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
4335 static TARGET_TYPE make(
4336 const ALLOCATOR& allocator,
4342#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 2
4343 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4345 static TARGET_TYPE make(
4346 const ALLOCATOR& allocator,
4353#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 3
4354 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4357 static TARGET_TYPE make(
4358 const ALLOCATOR& allocator,
4366#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 4
4367 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4371 static TARGET_TYPE make(
4372 const ALLOCATOR& allocator,
4381#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 5
4382 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4387 static TARGET_TYPE make(
4388 const ALLOCATOR& allocator,
4398#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 6
4399 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4405 static TARGET_TYPE make(
4406 const ALLOCATOR& allocator,
4417#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 7
4418 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4425 static TARGET_TYPE make(
4426 const ALLOCATOR& allocator,
4438#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 8
4439 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4447 static TARGET_TYPE make(
4448 const ALLOCATOR& allocator,
4461#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 9
4462 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4471 static TARGET_TYPE make(
4472 const ALLOCATOR& allocator,
4486#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 10
4487 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4497 static TARGET_TYPE make(
4498 const ALLOCATOR& allocator,
4513#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 11
4514 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4525 static TARGET_TYPE make(
4526 const ALLOCATOR& allocator,
4542#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 12
4543 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4555 static TARGET_TYPE make(
4556 const ALLOCATOR& allocator,
4573#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 13
4574 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4587 static TARGET_TYPE make(
4588 const ALLOCATOR& allocator,
4606#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 0
4607 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
4608 static TARGET_TYPE make(
4609 const ALLOCATOR& allocator,
4614#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 1
4615 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
4616 static TARGET_TYPE make(
4617 const ALLOCATOR& allocator,
4623#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 2
4624 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4626 static TARGET_TYPE make(
4627 const ALLOCATOR& allocator,
4634#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 3
4635 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4638 static TARGET_TYPE make(
4639 const ALLOCATOR& allocator,
4647#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 4
4648 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4652 static TARGET_TYPE make(
4653 const ALLOCATOR& allocator,
4662#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 5
4663 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4668 static TARGET_TYPE make(
4669 const ALLOCATOR& allocator,
4679#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 6
4680 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4686 static TARGET_TYPE make(
4687 const ALLOCATOR& allocator,
4698#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 7
4699 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4706 static TARGET_TYPE make(
4707 const ALLOCATOR& allocator,
4719#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 8
4720 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4728 static TARGET_TYPE make(
4729 const ALLOCATOR& allocator,
4742#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 9
4743 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4752 static TARGET_TYPE make(
4753 const ALLOCATOR& allocator,
4767#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 10
4768 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4778 static TARGET_TYPE make(
4779 const ALLOCATOR& allocator,
4794#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 11
4795 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4806 static TARGET_TYPE make(
4807 const ALLOCATOR& allocator,
4823#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 12
4824 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4836 static TARGET_TYPE make(
4837 const ALLOCATOR& allocator,
4854#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 13
4855 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4868 static TARGET_TYPE make(
4869 const ALLOCATOR& allocator,
4890# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
4891 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
4892 static TARGET_TYPE make(
4893 const ALLOCATOR& allocator,
4897 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
4898 static TARGET_TYPE make(
4899 const ALLOCATOR& allocator,
4903 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
4904 static TARGET_TYPE make(
4905 const ALLOCATOR& allocator,
4911 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
4912 static TARGET_TYPE make(
4913 const ALLOCATOR& allocator,
4917 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
4918 static TARGET_TYPE make(
4919 const ALLOCATOR& allocator,
4923 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
4924 static TARGET_TYPE make(
4925 const ALLOCATOR& allocator,
4936 template <
class TARGET_TYPE>
4937 static void *
voidify(TARGET_TYPE *address);
4951template <
class ALLOC>
4952struct ConstructionUtil_IsAllocatorPtr;
4956template <
class ALLOC>
4962template <
class ALLOC>
4963struct ConstructionUtil_IsAllocatorPtr<ALLOC *>
5018template <
class TARGET_TYPE,
class ALLOCATOR>
5019struct ConstructionUtil_ConstructionTrait {
5023 typedef ConstructionUtil_Imp Imp;
5034 : Imp::e_USES_ALLOCATOR_TRAITS)
5046template <
class TYPE,
5049struct ConstructionUtil_AllocAdaptorUtil;
5055template <
class TYPE>
5056struct ConstructionUtil_AllocAdaptorUtil<TYPE, false, false> {
5063template <
class TYPE>
5064struct ConstructionUtil_AllocAdaptorUtil<TYPE, false, true> {
5070 template <
class ALLOC>
5076 template <
class ALLOC>
5084template <
class TYPE,
bool IS_BSLMA_AA>
5085struct ConstructionUtil_AllocAdaptorUtil<TYPE, true, IS_BSLMA_AA> {
5090 template <
class ALLOC>
5091 static typename TYPE::allocator_type adapt(
const ALLOC& a) {
return a; }
5100template <
class TARGET_TYPE,
class ALLOCATOR>
5104 const ALLOCATOR& allocator)
5112#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
5115#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
5116#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT 13
5118#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E
5119#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
5121# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
5122#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 0
5123template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
5127 const ALLOCATOR& allocator,
5140#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 1
5141template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
5145 const ALLOCATOR& allocator,
5160#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 2
5161template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5166 const ALLOCATOR& allocator,
5183#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 3
5184template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5190 const ALLOCATOR& allocator,
5209#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 4
5210template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5217 const ALLOCATOR& allocator,
5238#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 5
5239template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5247 const ALLOCATOR& allocator,
5270#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 6
5271template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5280 const ALLOCATOR& allocator,
5305#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 7
5306template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5316 const ALLOCATOR& allocator,
5343#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 8
5344template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5355 const ALLOCATOR& allocator,
5384#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 9
5385template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5397 const ALLOCATOR& allocator,
5428#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 10
5429template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5442 const ALLOCATOR& allocator,
5475#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 11
5476template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5490 const ALLOCATOR& allocator,
5525#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 12
5526template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5541 const ALLOCATOR& allocator,
5578#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 13
5579template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5595 const ALLOCATOR& allocator,
5636#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 0
5637template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
5641 const ALLOCATOR& allocator,
5654#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 1
5655template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
5659 const ALLOCATOR& allocator,
5674#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 2
5675template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5680 const ALLOCATOR& allocator,
5697#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 3
5698template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5704 const ALLOCATOR& allocator,
5723#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 4
5724template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5731 const ALLOCATOR& allocator,
5752#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 5
5753template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5761 const ALLOCATOR& allocator,
5784#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 6
5785template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5794 const ALLOCATOR& allocator,
5819#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 7
5820template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5830 const ALLOCATOR& allocator,
5857#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 8
5858template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5869 const ALLOCATOR& allocator,
5898#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 9
5899template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5911 const ALLOCATOR& allocator,
5942#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 10
5943template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5956 const ALLOCATOR& allocator,
5989#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 11
5990template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6004 const ALLOCATOR& allocator,
6039#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 12
6040template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6055 const ALLOCATOR& allocator,
6092#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 13
6093template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6109 const ALLOCATOR& allocator,
6151# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
6152template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
6156 const ALLOCATOR& allocator,
6171template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
6175 const ALLOCATOR& allocator,
6191template <
class TARGET_TYPE,
class ALLOCATOR>
6195 const ALLOCATOR& allocator,
6196 TARGET_TYPE *original)
6213#if defined(BSLS_COMPILERFEATURES_GUARANTEED_COPY_ELISION)
6218template <
class TARGET_TYPE,
class ALLOCATOR>
6221ConstructionUtil::make(
const ALLOCATOR& allocator)
6226 return Imp::make<TARGET_TYPE>(allocator, Trait());
6229#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
6232#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
6233#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT 13
6235#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F
6236#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
6238# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
6239#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 0
6240template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
6243ConstructionUtil::make(
const ALLOCATOR& allocator,
6249 return Imp::make<TARGET_TYPE>(
6256#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 1
6257template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
6260ConstructionUtil::make(
const ALLOCATOR& allocator,
6267 return Imp::make<TARGET_TYPE>(
6275#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 2
6276template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6280ConstructionUtil::make(
const ALLOCATOR& allocator,
6288 return Imp::make<TARGET_TYPE>(
6297#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 3
6298template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6303ConstructionUtil::make(
const ALLOCATOR& allocator,
6312 return Imp::make<TARGET_TYPE>(
6322#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 4
6323template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6329ConstructionUtil::make(
const ALLOCATOR& allocator,
6339 return Imp::make<TARGET_TYPE>(
6350#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 5
6351template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6358ConstructionUtil::make(
const ALLOCATOR& allocator,
6369 return Imp::make<TARGET_TYPE>(
6381#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 6
6382template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6390ConstructionUtil::make(
const ALLOCATOR& allocator,
6402 return Imp::make<TARGET_TYPE>(
6415#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 7
6416template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6425ConstructionUtil::make(
const ALLOCATOR& allocator,
6438 return Imp::make<TARGET_TYPE>(
6452#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 8
6453template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6463ConstructionUtil::make(
const ALLOCATOR& allocator,
6477 return Imp::make<TARGET_TYPE>(
6492#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 9
6493template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6504ConstructionUtil::make(
const ALLOCATOR& allocator,
6519 return Imp::make<TARGET_TYPE>(
6535#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 10
6536template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6548ConstructionUtil::make(
const ALLOCATOR& allocator,
6564 return Imp::make<TARGET_TYPE>(
6581#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 11
6582template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6595ConstructionUtil::make(
const ALLOCATOR& allocator,
6612 return Imp::make<TARGET_TYPE>(
6630#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 12
6631template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6645ConstructionUtil::make(
const ALLOCATOR& allocator,
6663 return Imp::make<TARGET_TYPE>(
6682#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 13
6683template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6698ConstructionUtil::make(
const ALLOCATOR& allocator,
6717 return Imp::make<TARGET_TYPE>(
6739#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 0
6740template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
6743ConstructionUtil::make(
const ALLOCATOR& allocator,
6749 return Imp::make<TARGET_TYPE>(
6756#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 1
6757template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
6760ConstructionUtil::make(
const ALLOCATOR& allocator,
6767 return Imp::make<TARGET_TYPE>(
6775#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 2
6776template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6780ConstructionUtil::make(
const ALLOCATOR& allocator,
6788 return Imp::make<TARGET_TYPE>(
6797#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 3
6798template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6803ConstructionUtil::make(
const ALLOCATOR& allocator,
6812 return Imp::make<TARGET_TYPE>(
6822#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 4
6823template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6829ConstructionUtil::make(
const ALLOCATOR& allocator,
6839 return Imp::make<TARGET_TYPE>(
6850#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 5
6851template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6858ConstructionUtil::make(
const ALLOCATOR& allocator,
6869 return Imp::make<TARGET_TYPE>(
6881#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 6
6882template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6890ConstructionUtil::make(
const ALLOCATOR& allocator,
6902 return Imp::make<TARGET_TYPE>(
6915#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 7
6916template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6925ConstructionUtil::make(
const ALLOCATOR& allocator,
6938 return Imp::make<TARGET_TYPE>(
6952#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 8
6953template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6963ConstructionUtil::make(
const ALLOCATOR& allocator,
6977 return Imp::make<TARGET_TYPE>(
6992#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 9
6993template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7004ConstructionUtil::make(
const ALLOCATOR& allocator,
7019 return Imp::make<TARGET_TYPE>(
7035#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 10
7036template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7048ConstructionUtil::make(
const ALLOCATOR& allocator,
7064 return Imp::make<TARGET_TYPE>(
7081#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 11
7082template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7095ConstructionUtil::make(
const ALLOCATOR& allocator,
7112 return Imp::make<TARGET_TYPE>(
7130#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 12
7131template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7145ConstructionUtil::make(
const ALLOCATOR& allocator,
7163 return Imp::make<TARGET_TYPE>(
7182#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 13
7183template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7198ConstructionUtil::make(
const ALLOCATOR& allocator,
7217 return Imp::make<TARGET_TYPE>(
7240# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
7241template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
7244ConstructionUtil::make(
const ALLOCATOR& allocator,
7251 return Imp::make<TARGET_TYPE>(
7259template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
7262ConstructionUtil::make(
const ALLOCATOR& allocator,
7269 return Imp::make<TARGET_TYPE>(
7286template <
class TARGET_TYPE,
class ALLOCATOR>
7290 TARGET_TYPE *address,
7291 const ALLOCATOR& allocator,
7294 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7295 ::new (voidify(address)) TARGET_TYPE(bsl::allocator_arg,
7296 AllocUtil::adapt(allocator));
7300template <
class TARGET_TYPE,
class ALLOCATOR>
7304 TARGET_TYPE *address,
7305 const ALLOCATOR& allocator,
7308 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7309 ::new (voidify(address)) TARGET_TYPE(AllocUtil::adapt(allocator));
7313template <
class TARGET_TYPE,
class ALLOCATOR>
7317 TARGET_TYPE *address,
7321 ::new (voidify(address)) TARGET_TYPE();
7325#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
7328#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
7329#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT 13
7331#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G
7332#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
7334# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
7335#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 0
7336template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
7340 TARGET_TYPE *address,
7341 const ALLOCATOR& allocator,
7345 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7346 ::new (voidify(address)) TARGET_TYPE(
7348 AllocUtil::adapt(allocator),
7354#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 1
7355template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
7359 TARGET_TYPE *address,
7360 const ALLOCATOR& allocator,
7365 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7366 ::new (voidify(address)) TARGET_TYPE(
7368 AllocUtil::adapt(allocator),
7375#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 2
7376template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7381 TARGET_TYPE *address,
7382 const ALLOCATOR& allocator,
7388 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7389 ::new (voidify(address)) TARGET_TYPE(
7391 AllocUtil::adapt(allocator),
7399#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 3
7400template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7406 TARGET_TYPE *address,
7407 const ALLOCATOR& allocator,
7414 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7415 ::new (voidify(address)) TARGET_TYPE(
7417 AllocUtil::adapt(allocator),
7426#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 4
7427template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7434 TARGET_TYPE *address,
7435 const ALLOCATOR& allocator,
7443 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7444 ::new (voidify(address)) TARGET_TYPE(
7446 AllocUtil::adapt(allocator),
7456#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 5
7457template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7465 TARGET_TYPE *address,
7466 const ALLOCATOR& allocator,
7475 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7476 ::new (voidify(address)) TARGET_TYPE(
7478 AllocUtil::adapt(allocator),
7489#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 6
7490template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7499 TARGET_TYPE *address,
7500 const ALLOCATOR& allocator,
7510 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7511 ::new (voidify(address)) TARGET_TYPE(
7513 AllocUtil::adapt(allocator),
7525#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 7
7526template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7536 TARGET_TYPE *address,
7537 const ALLOCATOR& allocator,
7548 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7549 ::new (voidify(address)) TARGET_TYPE(
7551 AllocUtil::adapt(allocator),
7564#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 8
7565template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7576 TARGET_TYPE *address,
7577 const ALLOCATOR& allocator,
7589 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7590 ::new (voidify(address)) TARGET_TYPE(
7592 AllocUtil::adapt(allocator),
7606#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 9
7607template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7619 TARGET_TYPE *address,
7620 const ALLOCATOR& allocator,
7633 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7634 ::new (voidify(address)) TARGET_TYPE(
7636 AllocUtil::adapt(allocator),
7651#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 10
7652template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7665 TARGET_TYPE *address,
7666 const ALLOCATOR& allocator,
7680 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7681 ::new (voidify(address)) TARGET_TYPE(
7683 AllocUtil::adapt(allocator),
7699#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 11
7700template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7714 TARGET_TYPE *address,
7715 const ALLOCATOR& allocator,
7730 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7731 ::new (voidify(address)) TARGET_TYPE(
7733 AllocUtil::adapt(allocator),
7750#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 12
7751template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7766 TARGET_TYPE *address,
7767 const ALLOCATOR& allocator,
7783 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7784 ::new (voidify(address)) TARGET_TYPE(
7786 AllocUtil::adapt(allocator),
7804#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 13
7805template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7821 TARGET_TYPE *address,
7822 const ALLOCATOR& allocator,
7839 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7840 ::new (voidify(address)) TARGET_TYPE(
7842 AllocUtil::adapt(allocator),
7862#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 0
7863template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
7867 TARGET_TYPE *address,
7868 const ALLOCATOR& allocator,
7872 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7873 ::new (voidify(address)) TARGET_TYPE(
7875 AllocUtil::adapt(allocator));
7880#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 1
7881template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
7885 TARGET_TYPE *address,
7886 const ALLOCATOR& allocator,
7891 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7892 ::new (voidify(address)) TARGET_TYPE(
7895 AllocUtil::adapt(allocator));
7900#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 2
7901template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7906 TARGET_TYPE *address,
7907 const ALLOCATOR& allocator,
7913 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7914 ::new (voidify(address)) TARGET_TYPE(
7918 AllocUtil::adapt(allocator));
7923#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 3
7924template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7930 TARGET_TYPE *address,
7931 const ALLOCATOR& allocator,
7938 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7939 ::new (voidify(address)) TARGET_TYPE(
7944 AllocUtil::adapt(allocator));
7949#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 4
7950template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7957 TARGET_TYPE *address,
7958 const ALLOCATOR& allocator,
7966 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7967 ::new (voidify(address)) TARGET_TYPE(
7973 AllocUtil::adapt(allocator));
7978#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 5
7979template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7987 TARGET_TYPE *address,
7988 const ALLOCATOR& allocator,
7997 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7998 ::new (voidify(address)) TARGET_TYPE(
8005 AllocUtil::adapt(allocator));
8010#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 6
8011template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8020 TARGET_TYPE *address,
8021 const ALLOCATOR& allocator,
8031 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8032 ::new (voidify(address)) TARGET_TYPE(
8040 AllocUtil::adapt(allocator));
8045#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 7
8046template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8056 TARGET_TYPE *address,
8057 const ALLOCATOR& allocator,
8068 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8069 ::new (voidify(address)) TARGET_TYPE(
8078 AllocUtil::adapt(allocator));
8083#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 8
8084template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8095 TARGET_TYPE *address,
8096 const ALLOCATOR& allocator,
8108 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8109 ::new (voidify(address)) TARGET_TYPE(
8119 AllocUtil::adapt(allocator));
8124#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 9
8125template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8137 TARGET_TYPE *address,
8138 const ALLOCATOR& allocator,
8151 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8152 ::new (voidify(address)) TARGET_TYPE(
8163 AllocUtil::adapt(allocator));
8168#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 10
8169template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8182 TARGET_TYPE *address,
8183 const ALLOCATOR& allocator,
8197 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8198 ::new (voidify(address)) TARGET_TYPE(
8210 AllocUtil::adapt(allocator));
8215#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 11
8216template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8230 TARGET_TYPE *address,
8231 const ALLOCATOR& allocator,
8246 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8247 ::new (voidify(address)) TARGET_TYPE(
8260 AllocUtil::adapt(allocator));
8265#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 12
8266template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8281 TARGET_TYPE *address,
8282 const ALLOCATOR& allocator,
8298 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8299 ::new (voidify(address)) TARGET_TYPE(
8313 AllocUtil::adapt(allocator));
8318#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 13
8319template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8335 TARGET_TYPE *address,
8336 const ALLOCATOR& allocator,
8353 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8354 ::new (voidify(address)) TARGET_TYPE(
8369 AllocUtil::adapt(allocator));
8375#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 0
8376template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
8380 TARGET_TYPE *address,
8385 ::new (voidify(address)) TARGET_TYPE(
8391#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 1
8392template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
8396 TARGET_TYPE *address,
8402 ::new (voidify(address)) TARGET_TYPE(
8409#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 2
8410template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8415 TARGET_TYPE *address,
8422 ::new (voidify(address)) TARGET_TYPE(
8430#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 3
8431template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8437 TARGET_TYPE *address,
8445 ::new (voidify(address)) TARGET_TYPE(
8454#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 4
8455template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8462 TARGET_TYPE *address,
8471 ::new (voidify(address)) TARGET_TYPE(
8481#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 5
8482template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8490 TARGET_TYPE *address,
8500 ::new (voidify(address)) TARGET_TYPE(
8511#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 6
8512template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8521 TARGET_TYPE *address,
8532 ::new (voidify(address)) TARGET_TYPE(
8544#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 7
8545template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8555 TARGET_TYPE *address,
8567 ::new (voidify(address)) TARGET_TYPE(
8580#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 8
8581template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8592 TARGET_TYPE *address,
8605 ::new (voidify(address)) TARGET_TYPE(
8619#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 9
8620template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8632 TARGET_TYPE *address,
8646 ::new (voidify(address)) TARGET_TYPE(
8661#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 10
8662template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8675 TARGET_TYPE *address,
8690 ::new (voidify(address)) TARGET_TYPE(
8706#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 11
8707template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8721 TARGET_TYPE *address,
8737 ::new (voidify(address)) TARGET_TYPE(
8754#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 12
8755template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8770 TARGET_TYPE *address,
8787 ::new (voidify(address)) TARGET_TYPE(
8805#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 13
8806template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8822 TARGET_TYPE *address,
8840 ::new (voidify(address)) TARGET_TYPE(
8861#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 0
8862template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
8866 TARGET_TYPE *address,
8867 const ALLOCATOR& allocator,
8871 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8872 ::new (voidify(address)) TARGET_TYPE(
8874 AllocUtil::adapt(allocator),
8880#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 1
8881template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
8885 TARGET_TYPE *address,
8886 const ALLOCATOR& allocator,
8891 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8892 ::new (voidify(address)) TARGET_TYPE(
8894 AllocUtil::adapt(allocator),
8901#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 2
8902template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8907 TARGET_TYPE *address,
8908 const ALLOCATOR& allocator,
8914 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8915 ::new (voidify(address)) TARGET_TYPE(
8917 AllocUtil::adapt(allocator),
8925#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 3
8926template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8932 TARGET_TYPE *address,
8933 const ALLOCATOR& allocator,
8940 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8941 ::new (voidify(address)) TARGET_TYPE(
8943 AllocUtil::adapt(allocator),
8952#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 4
8953template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8960 TARGET_TYPE *address,
8961 const ALLOCATOR& allocator,
8969 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8970 ::new (voidify(address)) TARGET_TYPE(
8972 AllocUtil::adapt(allocator),
8982#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 5
8983template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8991 TARGET_TYPE *address,
8992 const ALLOCATOR& allocator,
9001 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9002 ::new (voidify(address)) TARGET_TYPE(
9004 AllocUtil::adapt(allocator),
9015#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 6
9016template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9025 TARGET_TYPE *address,
9026 const ALLOCATOR& allocator,
9036 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9037 ::new (voidify(address)) TARGET_TYPE(
9039 AllocUtil::adapt(allocator),
9051#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 7
9052template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9062 TARGET_TYPE *address,
9063 const ALLOCATOR& allocator,
9074 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9075 ::new (voidify(address)) TARGET_TYPE(
9077 AllocUtil::adapt(allocator),
9090#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 8
9091template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9102 TARGET_TYPE *address,
9103 const ALLOCATOR& allocator,
9115 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9116 ::new (voidify(address)) TARGET_TYPE(
9118 AllocUtil::adapt(allocator),
9132#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 9
9133template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9145 TARGET_TYPE *address,
9146 const ALLOCATOR& allocator,
9159 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9160 ::new (voidify(address)) TARGET_TYPE(
9162 AllocUtil::adapt(allocator),
9177#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 10
9178template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9191 TARGET_TYPE *address,
9192 const ALLOCATOR& allocator,
9206 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9207 ::new (voidify(address)) TARGET_TYPE(
9209 AllocUtil::adapt(allocator),
9225#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 11
9226template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9240 TARGET_TYPE *address,
9241 const ALLOCATOR& allocator,
9256 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9257 ::new (voidify(address)) TARGET_TYPE(
9259 AllocUtil::adapt(allocator),
9276#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 12
9277template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9292 TARGET_TYPE *address,
9293 const ALLOCATOR& allocator,
9309 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9310 ::new (voidify(address)) TARGET_TYPE(
9312 AllocUtil::adapt(allocator),
9330#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 13
9331template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9347 TARGET_TYPE *address,
9348 const ALLOCATOR& allocator,
9365 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9366 ::new (voidify(address)) TARGET_TYPE(
9368 AllocUtil::adapt(allocator),
9388#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 0
9389template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
9393 TARGET_TYPE *address,
9394 const ALLOCATOR& allocator,
9398 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9399 ::new (voidify(address)) TARGET_TYPE(
9401 AllocUtil::adapt(allocator));
9406#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 1
9407template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
9411 TARGET_TYPE *address,
9412 const ALLOCATOR& allocator,
9417 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9418 ::new (voidify(address)) TARGET_TYPE(
9421 AllocUtil::adapt(allocator));
9426#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 2
9427template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9432 TARGET_TYPE *address,
9433 const ALLOCATOR& allocator,
9439 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9440 ::new (voidify(address)) TARGET_TYPE(
9444 AllocUtil::adapt(allocator));
9449#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 3
9450template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9456 TARGET_TYPE *address,
9457 const ALLOCATOR& allocator,
9464 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9465 ::new (voidify(address)) TARGET_TYPE(
9470 AllocUtil::adapt(allocator));
9475#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 4
9476template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9483 TARGET_TYPE *address,
9484 const ALLOCATOR& allocator,
9492 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9493 ::new (voidify(address)) TARGET_TYPE(
9499 AllocUtil::adapt(allocator));
9504#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 5
9505template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9513 TARGET_TYPE *address,
9514 const ALLOCATOR& allocator,
9523 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9524 ::new (voidify(address)) TARGET_TYPE(
9531 AllocUtil::adapt(allocator));
9536#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 6
9537template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9546 TARGET_TYPE *address,
9547 const ALLOCATOR& allocator,
9557 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9558 ::new (voidify(address)) TARGET_TYPE(
9566 AllocUtil::adapt(allocator));
9571#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 7
9572template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9582 TARGET_TYPE *address,
9583 const ALLOCATOR& allocator,
9594 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9595 ::new (voidify(address)) TARGET_TYPE(
9604 AllocUtil::adapt(allocator));
9609#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 8
9610template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9621 TARGET_TYPE *address,
9622 const ALLOCATOR& allocator,
9634 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9635 ::new (voidify(address)) TARGET_TYPE(
9645 AllocUtil::adapt(allocator));
9650#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 9
9651template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9663 TARGET_TYPE *address,
9664 const ALLOCATOR& allocator,
9677 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9678 ::new (voidify(address)) TARGET_TYPE(
9689 AllocUtil::adapt(allocator));
9694#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 10
9695template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9708 TARGET_TYPE *address,
9709 const ALLOCATOR& allocator,
9723 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9724 ::new (voidify(address)) TARGET_TYPE(
9736 AllocUtil::adapt(allocator));
9741#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 11
9742template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9756 TARGET_TYPE *address,
9757 const ALLOCATOR& allocator,
9772 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9773 ::new (voidify(address)) TARGET_TYPE(
9786 AllocUtil::adapt(allocator));
9791#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 12
9792template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9807 TARGET_TYPE *address,
9808 const ALLOCATOR& allocator,
9824 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9825 ::new (voidify(address)) TARGET_TYPE(
9839 AllocUtil::adapt(allocator));
9844#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 13
9845template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9861 TARGET_TYPE *address,
9862 const ALLOCATOR& allocator,
9879 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9880 ::new (voidify(address)) TARGET_TYPE(
9895 AllocUtil::adapt(allocator));
9901#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 0
9902template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
9906 TARGET_TYPE *address,
9911 ::new (voidify(address)) TARGET_TYPE(
9917#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 1
9918template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
9922 TARGET_TYPE *address,
9928 ::new (voidify(address)) TARGET_TYPE(
9935#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 2
9936template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9941 TARGET_TYPE *address,
9948 ::new (voidify(address)) TARGET_TYPE(
9956#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 3
9957template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9963 TARGET_TYPE *address,
9971 ::new (voidify(address)) TARGET_TYPE(
9980#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 4
9981template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9988 TARGET_TYPE *address,
9997 ::new (voidify(address)) TARGET_TYPE(
10007#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 5
10008template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10016 TARGET_TYPE *address,
10026 ::new (voidify(address)) TARGET_TYPE(
10037#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 6
10038template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10047 TARGET_TYPE *address,
10058 ::new (voidify(address)) TARGET_TYPE(
10070#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 7
10071template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10081 TARGET_TYPE *address,
10093 ::new (voidify(address)) TARGET_TYPE(
10106#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 8
10107template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10118 TARGET_TYPE *address,
10131 ::new (voidify(address)) TARGET_TYPE(
10145#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 9
10146template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10158 TARGET_TYPE *address,
10172 ::new (voidify(address)) TARGET_TYPE(
10187#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 10
10188template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10201 TARGET_TYPE *address,
10216 ::new (voidify(address)) TARGET_TYPE(
10232#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 11
10233template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10247 TARGET_TYPE *address,
10263 ::new (voidify(address)) TARGET_TYPE(
10280#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 12
10281template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10296 TARGET_TYPE *address,
10313 ::new (voidify(address)) TARGET_TYPE(
10331#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 13
10332template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10348 TARGET_TYPE *address,
10366 ::new (voidify(address)) TARGET_TYPE(
10388# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
10389template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
10393 TARGET_TYPE *address,
10394 const ALLOCATOR& allocator,
10399 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10400 ::new (voidify(address)) TARGET_TYPE(
10401 bsl::allocator_arg,
10402 AllocUtil::adapt(allocator),
10408template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
10412 TARGET_TYPE *address,
10413 const ALLOCATOR& allocator,
10418 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10419 ::new (voidify(address)) TARGET_TYPE(
10422 AllocUtil::adapt(allocator));
10426template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
10430 TARGET_TYPE *address,
10436 ::new (voidify(address)) TARGET_TYPE(
10443template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
10447 TARGET_TYPE *address,
10448 const ALLOCATOR& allocator,
10453 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10454 ::new (voidify(address)) TARGET_TYPE(
10455 bsl::allocator_arg,
10456 AllocUtil::adapt(allocator),
10462template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
10466 TARGET_TYPE *address,
10467 const ALLOCATOR& allocator,
10472 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10473 ::new (voidify(address)) TARGET_TYPE(
10476 AllocUtil::adapt(allocator));
10480template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
10484 TARGET_TYPE *address,
10490 ::new (voidify(address)) TARGET_TYPE(
10498template <
class TARGET_TYPE,
class ALLOCATOR>
10502 TARGET_TYPE *address,
10505 TARGET_TYPE *original)
10509 ::new (voidify(address)) TARGET_TYPE(*original);
10515 memcpy(voidify(address), original,
sizeof *original);
10519template <
class TARGET_TYPE,
class ALLOCATOR>
10523 TARGET_TYPE *address,
10524 const ALLOCATOR& allocator,
10526 TARGET_TYPE *original)
10537 DestructionUtil::destroy(original);
10540#if defined(BSLS_COMPILERFEATURES_GUARANTEED_COPY_ELISION)
10545template <
class TARGET_TYPE,
class ALLOCATOR>
10548ConstructionUtil_Imp::make(
10549 const ALLOCATOR& allocator,
10552 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10553 return TARGET_TYPE(bsl::allocator_arg, AllocUtil::adapt(allocator));
10556template <
class TARGET_TYPE,
class ALLOCATOR>
10559ConstructionUtil_Imp::make(
10560 const ALLOCATOR& allocator,
10563 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10564 return TARGET_TYPE(AllocUtil::adapt(allocator));
10567template <
class TARGET_TYPE,
class ALLOCATOR>
10570ConstructionUtil_Imp::make(
10574 return TARGET_TYPE();
10577#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
10580#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
10581#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT 13
10583#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H
10584#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
10586# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
10587#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 0
10588template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
10591ConstructionUtil_Imp::make(
10592 const ALLOCATOR& allocator,
10596 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10597 return TARGET_TYPE(
10598 bsl::allocator_arg,
10599 AllocUtil::adapt(allocator),
10604#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 1
10605template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
10608ConstructionUtil_Imp::make(
10609 const ALLOCATOR& allocator,
10614 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10615 return TARGET_TYPE(
10616 bsl::allocator_arg,
10617 AllocUtil::adapt(allocator),
10623#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 2
10624template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10628ConstructionUtil_Imp::make(
10629 const ALLOCATOR& allocator,
10635 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10636 return TARGET_TYPE(
10637 bsl::allocator_arg,
10638 AllocUtil::adapt(allocator),
10645#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 3
10646template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10651ConstructionUtil_Imp::make(
10652 const ALLOCATOR& allocator,
10659 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10660 return TARGET_TYPE(
10661 bsl::allocator_arg,
10662 AllocUtil::adapt(allocator),
10670#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 4
10671template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10677ConstructionUtil_Imp::make(
10678 const ALLOCATOR& allocator,
10686 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10687 return TARGET_TYPE(
10688 bsl::allocator_arg,
10689 AllocUtil::adapt(allocator),
10698#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 5
10699template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10706ConstructionUtil_Imp::make(
10707 const ALLOCATOR& allocator,
10716 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10717 return TARGET_TYPE(
10718 bsl::allocator_arg,
10719 AllocUtil::adapt(allocator),
10729#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 6
10730template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10738ConstructionUtil_Imp::make(
10739 const ALLOCATOR& allocator,
10749 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10750 return TARGET_TYPE(
10751 bsl::allocator_arg,
10752 AllocUtil::adapt(allocator),
10763#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 7
10764template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10773ConstructionUtil_Imp::make(
10774 const ALLOCATOR& allocator,
10785 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10786 return TARGET_TYPE(
10787 bsl::allocator_arg,
10788 AllocUtil::adapt(allocator),
10800#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 8
10801template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10811ConstructionUtil_Imp::make(
10812 const ALLOCATOR& allocator,
10824 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10825 return TARGET_TYPE(
10826 bsl::allocator_arg,
10827 AllocUtil::adapt(allocator),
10840#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 9
10841template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10852ConstructionUtil_Imp::make(
10853 const ALLOCATOR& allocator,
10866 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10867 return TARGET_TYPE(
10868 bsl::allocator_arg,
10869 AllocUtil::adapt(allocator),
10883#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 10
10884template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10896ConstructionUtil_Imp::make(
10897 const ALLOCATOR& allocator,
10911 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10912 return TARGET_TYPE(
10913 bsl::allocator_arg,
10914 AllocUtil::adapt(allocator),
10929#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 11
10930template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10943ConstructionUtil_Imp::make(
10944 const ALLOCATOR& allocator,
10959 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10960 return TARGET_TYPE(
10961 bsl::allocator_arg,
10962 AllocUtil::adapt(allocator),
10978#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 12
10979template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10993ConstructionUtil_Imp::make(
10994 const ALLOCATOR& allocator,
11010 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11011 return TARGET_TYPE(
11012 bsl::allocator_arg,
11013 AllocUtil::adapt(allocator),
11030#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 13
11031template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11046ConstructionUtil_Imp::make(
11047 const ALLOCATOR& allocator,
11064 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11065 return TARGET_TYPE(
11066 bsl::allocator_arg,
11067 AllocUtil::adapt(allocator),
11086#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 0
11087template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
11090ConstructionUtil_Imp::make(
11091 const ALLOCATOR& allocator,
11095 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11096 return TARGET_TYPE(
11098 AllocUtil::adapt(allocator));
11102#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 1
11103template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
11106ConstructionUtil_Imp::make(
11107 const ALLOCATOR& allocator,
11112 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11113 return TARGET_TYPE(
11116 AllocUtil::adapt(allocator));
11120#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 2
11121template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11125ConstructionUtil_Imp::make(
11126 const ALLOCATOR& allocator,
11132 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11133 return TARGET_TYPE(
11137 AllocUtil::adapt(allocator));
11141#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 3
11142template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11147ConstructionUtil_Imp::make(
11148 const ALLOCATOR& allocator,
11155 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11156 return TARGET_TYPE(
11161 AllocUtil::adapt(allocator));
11165#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 4
11166template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11172ConstructionUtil_Imp::make(
11173 const ALLOCATOR& allocator,
11181 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11182 return TARGET_TYPE(
11188 AllocUtil::adapt(allocator));
11192#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 5
11193template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11200ConstructionUtil_Imp::make(
11201 const ALLOCATOR& allocator,
11210 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11211 return TARGET_TYPE(
11218 AllocUtil::adapt(allocator));
11222#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 6
11223template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11231ConstructionUtil_Imp::make(
11232 const ALLOCATOR& allocator,
11242 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11243 return TARGET_TYPE(
11251 AllocUtil::adapt(allocator));
11255#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 7
11256template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11265ConstructionUtil_Imp::make(
11266 const ALLOCATOR& allocator,
11277 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11278 return TARGET_TYPE(
11287 AllocUtil::adapt(allocator));
11291#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 8
11292template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11302ConstructionUtil_Imp::make(
11303 const ALLOCATOR& allocator,
11315 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11316 return TARGET_TYPE(
11326 AllocUtil::adapt(allocator));
11330#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 9
11331template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11342ConstructionUtil_Imp::make(
11343 const ALLOCATOR& allocator,
11356 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11357 return TARGET_TYPE(
11368 AllocUtil::adapt(allocator));
11372#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 10
11373template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11385ConstructionUtil_Imp::make(
11386 const ALLOCATOR& allocator,
11400 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11401 return TARGET_TYPE(
11413 AllocUtil::adapt(allocator));
11417#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 11
11418template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11431ConstructionUtil_Imp::make(
11432 const ALLOCATOR& allocator,
11447 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11448 return TARGET_TYPE(
11461 AllocUtil::adapt(allocator));
11465#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 12
11466template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11480ConstructionUtil_Imp::make(
11481 const ALLOCATOR& allocator,
11497 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11498 return TARGET_TYPE(
11512 AllocUtil::adapt(allocator));
11516#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 13
11517template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11532ConstructionUtil_Imp::make(
11533 const ALLOCATOR& allocator,
11550 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11551 return TARGET_TYPE(
11566 AllocUtil::adapt(allocator));
11571#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 0
11572template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
11575ConstructionUtil_Imp::make(
11580 return TARGET_TYPE(
11585#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 1
11586template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
11589ConstructionUtil_Imp::make(
11595 return TARGET_TYPE(
11601#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 2
11602template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11606ConstructionUtil_Imp::make(
11613 return TARGET_TYPE(
11620#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 3
11621template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11626ConstructionUtil_Imp::make(
11634 return TARGET_TYPE(
11642#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 4
11643template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11649ConstructionUtil_Imp::make(
11658 return TARGET_TYPE(
11667#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 5
11668template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11675ConstructionUtil_Imp::make(
11685 return TARGET_TYPE(
11695#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 6
11696template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11704ConstructionUtil_Imp::make(
11715 return TARGET_TYPE(
11726#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 7
11727template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11736ConstructionUtil_Imp::make(
11748 return TARGET_TYPE(
11760#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 8
11761template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11771ConstructionUtil_Imp::make(
11784 return TARGET_TYPE(
11797#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 9
11798template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11809ConstructionUtil_Imp::make(
11823 return TARGET_TYPE(
11837#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 10
11838template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11850ConstructionUtil_Imp::make(
11865 return TARGET_TYPE(
11880#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 11
11881template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11894ConstructionUtil_Imp::make(
11910 return TARGET_TYPE(
11926#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 12
11927template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11941ConstructionUtil_Imp::make(
11958 return TARGET_TYPE(
11975#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 13
11976template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11991ConstructionUtil_Imp::make(
12009 return TARGET_TYPE(
12029#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 0
12030template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
12033ConstructionUtil_Imp::make(
12034 const ALLOCATOR& allocator,
12038 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12039 return TARGET_TYPE(
12040 bsl::allocator_arg,
12041 AllocUtil::adapt(allocator),
12046#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 1
12047template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
12050ConstructionUtil_Imp::make(
12051 const ALLOCATOR& allocator,
12056 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12057 return TARGET_TYPE(
12058 bsl::allocator_arg,
12059 AllocUtil::adapt(allocator),
12065#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 2
12066template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12070ConstructionUtil_Imp::make(
12071 const ALLOCATOR& allocator,
12077 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12078 return TARGET_TYPE(
12079 bsl::allocator_arg,
12080 AllocUtil::adapt(allocator),
12087#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 3
12088template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12093ConstructionUtil_Imp::make(
12094 const ALLOCATOR& allocator,
12101 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12102 return TARGET_TYPE(
12103 bsl::allocator_arg,
12104 AllocUtil::adapt(allocator),
12112#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 4
12113template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12119ConstructionUtil_Imp::make(
12120 const ALLOCATOR& allocator,
12128 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12129 return TARGET_TYPE(
12130 bsl::allocator_arg,
12131 AllocUtil::adapt(allocator),
12140#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 5
12141template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12148ConstructionUtil_Imp::make(
12149 const ALLOCATOR& allocator,
12158 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12159 return TARGET_TYPE(
12160 bsl::allocator_arg,
12161 AllocUtil::adapt(allocator),
12171#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 6
12172template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12180ConstructionUtil_Imp::make(
12181 const ALLOCATOR& allocator,
12191 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12192 return TARGET_TYPE(
12193 bsl::allocator_arg,
12194 AllocUtil::adapt(allocator),
12205#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 7
12206template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12215ConstructionUtil_Imp::make(
12216 const ALLOCATOR& allocator,
12227 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12228 return TARGET_TYPE(
12229 bsl::allocator_arg,
12230 AllocUtil::adapt(allocator),
12242#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 8
12243template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12253ConstructionUtil_Imp::make(
12254 const ALLOCATOR& allocator,
12266 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12267 return TARGET_TYPE(
12268 bsl::allocator_arg,
12269 AllocUtil::adapt(allocator),
12282#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 9
12283template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12294ConstructionUtil_Imp::make(
12295 const ALLOCATOR& allocator,
12308 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12309 return TARGET_TYPE(
12310 bsl::allocator_arg,
12311 AllocUtil::adapt(allocator),
12325#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 10
12326template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12338ConstructionUtil_Imp::make(
12339 const ALLOCATOR& allocator,
12353 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12354 return TARGET_TYPE(
12355 bsl::allocator_arg,
12356 AllocUtil::adapt(allocator),
12371#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 11
12372template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12385ConstructionUtil_Imp::make(
12386 const ALLOCATOR& allocator,
12401 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12402 return TARGET_TYPE(
12403 bsl::allocator_arg,
12404 AllocUtil::adapt(allocator),
12420#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 12
12421template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12435ConstructionUtil_Imp::make(
12436 const ALLOCATOR& allocator,
12452 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12453 return TARGET_TYPE(
12454 bsl::allocator_arg,
12455 AllocUtil::adapt(allocator),
12472#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 13
12473template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12488ConstructionUtil_Imp::make(
12489 const ALLOCATOR& allocator,
12506 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12507 return TARGET_TYPE(
12508 bsl::allocator_arg,
12509 AllocUtil::adapt(allocator),
12528#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 0
12529template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
12532ConstructionUtil_Imp::make(
12533 const ALLOCATOR& allocator,
12537 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12538 return TARGET_TYPE(
12540 AllocUtil::adapt(allocator));
12544#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 1
12545template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
12548ConstructionUtil_Imp::make(
12549 const ALLOCATOR& allocator,
12554 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12555 return TARGET_TYPE(
12558 AllocUtil::adapt(allocator));
12562#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 2
12563template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12567ConstructionUtil_Imp::make(
12568 const ALLOCATOR& allocator,
12574 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12575 return TARGET_TYPE(
12579 AllocUtil::adapt(allocator));
12583#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 3
12584template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12589ConstructionUtil_Imp::make(
12590 const ALLOCATOR& allocator,
12597 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12598 return TARGET_TYPE(
12603 AllocUtil::adapt(allocator));
12607#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 4
12608template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12614ConstructionUtil_Imp::make(
12615 const ALLOCATOR& allocator,
12623 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12624 return TARGET_TYPE(
12630 AllocUtil::adapt(allocator));
12634#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 5
12635template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12642ConstructionUtil_Imp::make(
12643 const ALLOCATOR& allocator,
12652 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12653 return TARGET_TYPE(
12660 AllocUtil::adapt(allocator));
12664#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 6
12665template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12673ConstructionUtil_Imp::make(
12674 const ALLOCATOR& allocator,
12684 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12685 return TARGET_TYPE(
12693 AllocUtil::adapt(allocator));
12697#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 7
12698template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12707ConstructionUtil_Imp::make(
12708 const ALLOCATOR& allocator,
12719 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12720 return TARGET_TYPE(
12729 AllocUtil::adapt(allocator));
12733#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 8
12734template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12744ConstructionUtil_Imp::make(
12745 const ALLOCATOR& allocator,
12757 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12758 return TARGET_TYPE(
12768 AllocUtil::adapt(allocator));
12772#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 9
12773template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12784ConstructionUtil_Imp::make(
12785 const ALLOCATOR& allocator,
12798 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12799 return TARGET_TYPE(
12810 AllocUtil::adapt(allocator));
12814#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 10
12815template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12827ConstructionUtil_Imp::make(
12828 const ALLOCATOR& allocator,
12842 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12843 return TARGET_TYPE(
12855 AllocUtil::adapt(allocator));
12859#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 11
12860template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12873ConstructionUtil_Imp::make(
12874 const ALLOCATOR& allocator,
12889 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12890 return TARGET_TYPE(
12903 AllocUtil::adapt(allocator));
12907#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 12
12908template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12922ConstructionUtil_Imp::make(
12923 const ALLOCATOR& allocator,
12939 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12940 return TARGET_TYPE(
12954 AllocUtil::adapt(allocator));
12958#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 13
12959template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12974ConstructionUtil_Imp::make(
12975 const ALLOCATOR& allocator,
12992 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12993 return TARGET_TYPE(
13008 AllocUtil::adapt(allocator));
13013#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 0
13014template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
13017ConstructionUtil_Imp::make(
13022 return TARGET_TYPE(
13027#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 1
13028template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
13031ConstructionUtil_Imp::make(
13037 return TARGET_TYPE(
13043#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 2
13044template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13048ConstructionUtil_Imp::make(
13055 return TARGET_TYPE(
13062#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 3
13063template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13068ConstructionUtil_Imp::make(
13076 return TARGET_TYPE(
13084#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 4
13085template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13091ConstructionUtil_Imp::make(
13100 return TARGET_TYPE(
13109#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 5
13110template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13117ConstructionUtil_Imp::make(
13127 return TARGET_TYPE(
13137#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 6
13138template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13146ConstructionUtil_Imp::make(
13157 return TARGET_TYPE(
13168#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 7
13169template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13178ConstructionUtil_Imp::make(
13190 return TARGET_TYPE(
13202#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 8
13203template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13213ConstructionUtil_Imp::make(
13226 return TARGET_TYPE(
13239#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 9
13240template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13251ConstructionUtil_Imp::make(
13265 return TARGET_TYPE(
13279#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 10
13280template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13292ConstructionUtil_Imp::make(
13307 return TARGET_TYPE(
13322#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 11
13323template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13336ConstructionUtil_Imp::make(
13352 return TARGET_TYPE(
13368#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 12
13369template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13383ConstructionUtil_Imp::make(
13400 return TARGET_TYPE(
13417#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 13
13418template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13433ConstructionUtil_Imp::make(
13451 return TARGET_TYPE(
13472# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
13473template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
13476ConstructionUtil_Imp::make(
13477 const ALLOCATOR& allocator,
13482 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
13483 return TARGET_TYPE(
13484 bsl::allocator_arg,
13485 AllocUtil::adapt(allocator),
13490template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
13493ConstructionUtil_Imp::make(
13494 const ALLOCATOR& allocator,
13499 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
13500 return TARGET_TYPE(
13503 AllocUtil::adapt(allocator));
13506template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
13509ConstructionUtil_Imp::make(
13515 return TARGET_TYPE(
13521template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
13524ConstructionUtil_Imp::make(
13525 const ALLOCATOR& allocator,
13530 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
13531 return TARGET_TYPE(
13532 bsl::allocator_arg,
13533 AllocUtil::adapt(allocator),
13538template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
13541ConstructionUtil_Imp::make(
13542 const ALLOCATOR& allocator,
13547 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
13548 return TARGET_TYPE(
13551 AllocUtil::adapt(allocator));
13554template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
13557ConstructionUtil_Imp::make(
13563 return TARGET_TYPE(
13573template <
class TARGET_TYPE>
13577 return static_cast<void *
>(
13585# error Not valid except when included from bslma_constructionutil.h
#define BSLMA_CONSTRUCTIONUTIL_XLC_PLACEMENT_NEW_FIX
Definition bslma_constructionutil.h:729
Definition bslma_allocator.h:457
static const bool value
Definition bslmf_integralconstant.h:258
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1762
#define BSLS_COMPILERFEATURES_FORWARD_REF(T)
Definition bsls_compilerfeatures.h:2012
#define BSLS_COMPILERFEATURES_FORWARD(T, V)
Definition bsls_compilerfeatures.h:2018
Definition balxml_encoderoptions.h:68
Definition bslmf_integralconstant.h:244
Definition bslmf_isclass.h:163
Definition bslmf_isconvertible.h:867
Definition bslmf_isfundamental.h:329
Definition bslmf_ispointer.h:138
remove_const< typenameremove_volatile< t_TYPE >::type >::type type
Definition bslmf_removecv.h:126
Definition bslmf_usesallocator.h:165
bsl::integral_constant< int, value > type
Definition bslma_constructionutil.h:1178
@ value
Definition bslma_constructionutil.h:1168
static void destructiveMove(TARGET_TYPE *address, const ALLOCATOR &allocator, bsl::integral_constant< int, e_BITWISE_MOVABLE_TRAITS >, TARGET_TYPE *original)
Definition bslma_constructionutil.h:1528
static void * voidify(TARGET_TYPE *address)
Definition bslma_constructionutil.h:1707
static void construct(TARGET_TYPE *address, const ALLOCATOR &allocator, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS >)
Definition bslma_constructionutil.h:1379
@ e_NIL_TRAITS
Definition bslma_constructionutil.h:884
@ e_BITWISE_MOVABLE_TRAITS
Definition bslma_constructionutil.h:885
@ e_USES_ALLOCATOR_ARG_T_TRAITS
Definition bslma_constructionutil.h:887
@ e_USES_ALLOCATOR_TRAITS
Definition bslma_constructionutil.h:886
static void construct(TARGET_TYPE *address, const ALLOCATOR &allocator)
Definition bslma_constructionutil.h:1243
static void destructiveMove(TARGET_TYPE *address, const ALLOCATOR &allocator, TARGET_TYPE *original)
Definition bslma_constructionutil.h:1295
Definition bslmf_isbitwisemoveable.h:718
static MovableRef< t_TYPE > move(t_TYPE &reference) BSLS_KEYWORD_NOEXCEPT
Definition bslmf_movableref.h:1060
Definition bslmf_usesallocatorargt.h:100