11#ifndef INCLUDED_BSLMA_CONSTRUCTIONUTIL_CPP03
12#define INCLUDED_BSLMA_CONSTRUCTIONUTIL_CPP03
63#ifdef COMPILING_BSLMA_CONSTRUCTIONUTIL_H
68struct ConstructionUtil_Imp;
78struct ConstructionUtil {
85 typedef ConstructionUtil_Imp Imp;
100 template <
class TARGET_TYPE,
class ALLOCATOR>
101 static void construct(TARGET_TYPE *address,
const ALLOCATOR& allocator);
103#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
106#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
107#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT 13
109#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A
110#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
112# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
113#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 0
114 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
115 static void construct(TARGET_TYPE *address,
116 const ALLOCATOR& allocator,
120#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 1
121 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
122 static void construct(TARGET_TYPE *address,
123 const ALLOCATOR& allocator,
128#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 2
129 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
131 static void construct(TARGET_TYPE *address,
132 const ALLOCATOR& allocator,
138#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 3
139 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
142 static void construct(TARGET_TYPE *address,
143 const ALLOCATOR& allocator,
150#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 4
151 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
155 static void construct(TARGET_TYPE *address,
156 const ALLOCATOR& allocator,
164#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 5
165 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
170 static void construct(TARGET_TYPE *address,
171 const ALLOCATOR& allocator,
180#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 6
181 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
187 static void construct(TARGET_TYPE *address,
188 const ALLOCATOR& allocator,
198#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 7
199 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
206 static void construct(TARGET_TYPE *address,
207 const ALLOCATOR& allocator,
218#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 8
219 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
227 static void construct(TARGET_TYPE *address,
228 const ALLOCATOR& allocator,
240#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 9
241 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
250 static void construct(TARGET_TYPE *address,
251 const ALLOCATOR& allocator,
264#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 10
265 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
275 static void construct(TARGET_TYPE *address,
276 const ALLOCATOR& allocator,
290#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 11
291 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
302 static void construct(TARGET_TYPE *address,
303 const ALLOCATOR& allocator,
318#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 12
319 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
331 static void construct(TARGET_TYPE *address,
332 const ALLOCATOR& allocator,
348#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 13
349 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
362 static void construct(TARGET_TYPE *address,
363 const ALLOCATOR& allocator,
382#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 0
383 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
384 static void construct(TARGET_TYPE *address,
385 const ALLOCATOR& allocator,
389#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 1
390 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
391 static void construct(TARGET_TYPE *address,
392 const ALLOCATOR& allocator,
397#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 2
398 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
400 static void construct(TARGET_TYPE *address,
401 const ALLOCATOR& allocator,
407#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 3
408 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
411 static void construct(TARGET_TYPE *address,
412 const ALLOCATOR& allocator,
419#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 4
420 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
424 static void construct(TARGET_TYPE *address,
425 const ALLOCATOR& allocator,
433#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 5
434 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
439 static void construct(TARGET_TYPE *address,
440 const ALLOCATOR& allocator,
449#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 6
450 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
456 static void construct(TARGET_TYPE *address,
457 const ALLOCATOR& allocator,
467#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 7
468 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
475 static void construct(TARGET_TYPE *address,
476 const ALLOCATOR& allocator,
487#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 8
488 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
496 static void construct(TARGET_TYPE *address,
497 const ALLOCATOR& allocator,
509#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 9
510 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
519 static void construct(TARGET_TYPE *address,
520 const ALLOCATOR& allocator,
533#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 10
534 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
544 static void construct(TARGET_TYPE *address,
545 const ALLOCATOR& allocator,
559#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 11
560 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
571 static void construct(TARGET_TYPE *address,
572 const ALLOCATOR& allocator,
587#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 12
588 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
600 static void construct(TARGET_TYPE *address,
601 const ALLOCATOR& allocator,
617#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_A >= 13
618 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
631 static void construct(TARGET_TYPE *address,
632 const ALLOCATOR& allocator,
652# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
653 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
654 static void construct(TARGET_TYPE *address,
655 const ALLOCATOR& allocator,
660 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
661 static void construct(TARGET_TYPE *address,
662 const ALLOCATOR& allocator,
687 template <
class TARGET_TYPE,
class ALLOCATOR>
689 const ALLOCATOR& allocator,
690 TARGET_TYPE *original);
692#if defined(BSLS_COMPILERFEATURES_GUARANTEED_COPY_ELISION)
703 template <
class TARGET_TYPE,
class ALLOCATOR>
704 static TARGET_TYPE make(
const ALLOCATOR& allocator);
706#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
709#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
710#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT 13
712#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B
713#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
715# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
716#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 0
717 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
718 static TARGET_TYPE make(
const ALLOCATOR& allocator,
722#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 1
723 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
724 static TARGET_TYPE make(
const ALLOCATOR& allocator,
729#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 2
730 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
732 static TARGET_TYPE make(
const ALLOCATOR& allocator,
738#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 3
739 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
742 static TARGET_TYPE make(
const ALLOCATOR& allocator,
749#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 4
750 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
754 static TARGET_TYPE make(
const ALLOCATOR& allocator,
762#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 5
763 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
768 static TARGET_TYPE make(
const ALLOCATOR& allocator,
777#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 6
778 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
784 static TARGET_TYPE make(
const ALLOCATOR& allocator,
794#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 7
795 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
802 static TARGET_TYPE make(
const ALLOCATOR& allocator,
813#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 8
814 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
822 static TARGET_TYPE make(
const ALLOCATOR& allocator,
834#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 9
835 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
844 static TARGET_TYPE make(
const ALLOCATOR& allocator,
857#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 10
858 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
868 static TARGET_TYPE make(
const ALLOCATOR& allocator,
882#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 11
883 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
894 static TARGET_TYPE make(
const ALLOCATOR& allocator,
909#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 12
910 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
922 static TARGET_TYPE make(
const ALLOCATOR& allocator,
938#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 13
939 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
952 static TARGET_TYPE make(
const ALLOCATOR& allocator,
971#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 0
972 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
973 static TARGET_TYPE make(
const ALLOCATOR& allocator,
977#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 1
978 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
979 static TARGET_TYPE make(
const ALLOCATOR& allocator,
984#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 2
985 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
987 static TARGET_TYPE make(
const ALLOCATOR& allocator,
993#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 3
994 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
997 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1004#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 4
1005 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1009 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1017#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 5
1018 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1023 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1032#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 6
1033 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1039 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1049#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 7
1050 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1057 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1068#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 8
1069 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1077 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1089#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 9
1090 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1099 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1112#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 10
1113 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1123 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1137#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 11
1138 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1149 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1164#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 12
1165 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1177 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1193#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_B >= 13
1194 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1207 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1227# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
1228 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
1229 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1234 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
1235 static TARGET_TYPE make(
const ALLOCATOR& allocator,
1256struct ConstructionUtil_Imp {
1280 template <
class TARGET_TYPE,
class ALLOCATOR>
1282 TARGET_TYPE *address,
1283 const ALLOCATOR& allocator,
1285 template <
class TARGET_TYPE,
class ALLOCATOR>
1287 TARGET_TYPE *address,
1288 const ALLOCATOR& allocator,
1290 template <
class TARGET_TYPE,
class ALLOCATOR>
1292 TARGET_TYPE *address,
1293 const ALLOCATOR& allocator,
1296#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
1299#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
1300#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT 13
1302#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C
1303#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
1305# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
1306#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 0
1307 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
1309 TARGET_TYPE *address,
1310 const ALLOCATOR& allocator,
1315#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 1
1316 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
1318 TARGET_TYPE *address,
1319 const ALLOCATOR& allocator,
1325#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 2
1326 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1329 TARGET_TYPE *address,
1330 const ALLOCATOR& allocator,
1337#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 3
1338 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1342 TARGET_TYPE *address,
1343 const ALLOCATOR& allocator,
1351#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 4
1352 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1357 TARGET_TYPE *address,
1358 const ALLOCATOR& allocator,
1367#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 5
1368 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1374 TARGET_TYPE *address,
1375 const ALLOCATOR& allocator,
1385#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 6
1386 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1393 TARGET_TYPE *address,
1394 const ALLOCATOR& allocator,
1405#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 7
1406 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1414 TARGET_TYPE *address,
1415 const ALLOCATOR& allocator,
1427#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 8
1428 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1437 TARGET_TYPE *address,
1438 const ALLOCATOR& allocator,
1451#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 9
1452 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1462 TARGET_TYPE *address,
1463 const ALLOCATOR& allocator,
1477#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 10
1478 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1489 TARGET_TYPE *address,
1490 const ALLOCATOR& allocator,
1505#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 11
1506 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1518 TARGET_TYPE *address,
1519 const ALLOCATOR& allocator,
1535#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 12
1536 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1549 TARGET_TYPE *address,
1550 const ALLOCATOR& allocator,
1567#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 13
1568 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1582 TARGET_TYPE *address,
1583 const ALLOCATOR& allocator,
1601#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 0
1602 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
1604 TARGET_TYPE *address,
1605 const ALLOCATOR& allocator,
1610#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 1
1611 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
1613 TARGET_TYPE *address,
1614 const ALLOCATOR& allocator,
1620#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 2
1621 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1624 TARGET_TYPE *address,
1625 const ALLOCATOR& allocator,
1632#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 3
1633 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1637 TARGET_TYPE *address,
1638 const ALLOCATOR& allocator,
1646#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 4
1647 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1652 TARGET_TYPE *address,
1653 const ALLOCATOR& allocator,
1662#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 5
1663 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1669 TARGET_TYPE *address,
1670 const ALLOCATOR& allocator,
1680#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 6
1681 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1688 TARGET_TYPE *address,
1689 const ALLOCATOR& allocator,
1700#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 7
1701 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1709 TARGET_TYPE *address,
1710 const ALLOCATOR& allocator,
1722#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 8
1723 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1732 TARGET_TYPE *address,
1733 const ALLOCATOR& allocator,
1746#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 9
1747 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1757 TARGET_TYPE *address,
1758 const ALLOCATOR& allocator,
1772#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 10
1773 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1784 TARGET_TYPE *address,
1785 const ALLOCATOR& allocator,
1800#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 11
1801 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1813 TARGET_TYPE *address,
1814 const ALLOCATOR& allocator,
1830#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 12
1831 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1844 TARGET_TYPE *address,
1845 const ALLOCATOR& allocator,
1862#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 13
1863 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1877 TARGET_TYPE *address,
1878 const ALLOCATOR& allocator,
1896#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 0
1897 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
1899 TARGET_TYPE *address,
1900 const ALLOCATOR& allocator,
1905#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 1
1906 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
1908 TARGET_TYPE *address,
1909 const ALLOCATOR& allocator,
1915#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 2
1916 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1919 TARGET_TYPE *address,
1920 const ALLOCATOR& allocator,
1927#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 3
1928 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1932 TARGET_TYPE *address,
1933 const ALLOCATOR& allocator,
1941#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 4
1942 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1947 TARGET_TYPE *address,
1948 const ALLOCATOR& allocator,
1957#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 5
1958 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1964 TARGET_TYPE *address,
1965 const ALLOCATOR& allocator,
1975#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 6
1976 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
1983 TARGET_TYPE *address,
1984 const ALLOCATOR& allocator,
1995#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 7
1996 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2004 TARGET_TYPE *address,
2005 const ALLOCATOR& allocator,
2017#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 8
2018 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2027 TARGET_TYPE *address,
2028 const ALLOCATOR& allocator,
2041#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 9
2042 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2052 TARGET_TYPE *address,
2053 const ALLOCATOR& allocator,
2067#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 10
2068 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2079 TARGET_TYPE *address,
2080 const ALLOCATOR& allocator,
2095#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 11
2096 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2108 TARGET_TYPE *address,
2109 const ALLOCATOR& allocator,
2125#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 12
2126 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2139 TARGET_TYPE *address,
2140 const ALLOCATOR& allocator,
2157#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 13
2158 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2172 TARGET_TYPE *address,
2173 const ALLOCATOR& allocator,
2193#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 0
2194 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
2196 TARGET_TYPE *address,
2197 const ALLOCATOR& allocator,
2202#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 1
2203 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
2205 TARGET_TYPE *address,
2206 const ALLOCATOR& allocator,
2212#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 2
2213 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2216 TARGET_TYPE *address,
2217 const ALLOCATOR& allocator,
2224#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 3
2225 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2229 TARGET_TYPE *address,
2230 const ALLOCATOR& allocator,
2238#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 4
2239 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2244 TARGET_TYPE *address,
2245 const ALLOCATOR& allocator,
2254#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 5
2255 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2261 TARGET_TYPE *address,
2262 const ALLOCATOR& allocator,
2272#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 6
2273 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2280 TARGET_TYPE *address,
2281 const ALLOCATOR& allocator,
2292#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 7
2293 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2301 TARGET_TYPE *address,
2302 const ALLOCATOR& allocator,
2314#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 8
2315 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2324 TARGET_TYPE *address,
2325 const ALLOCATOR& allocator,
2338#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 9
2339 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2349 TARGET_TYPE *address,
2350 const ALLOCATOR& allocator,
2364#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 10
2365 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2376 TARGET_TYPE *address,
2377 const ALLOCATOR& allocator,
2392#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 11
2393 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2405 TARGET_TYPE *address,
2406 const ALLOCATOR& allocator,
2422#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 12
2423 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2436 TARGET_TYPE *address,
2437 const ALLOCATOR& allocator,
2454#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 13
2455 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2469 TARGET_TYPE *address,
2470 const ALLOCATOR& allocator,
2488#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 0
2489 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
2491 TARGET_TYPE *address,
2492 const ALLOCATOR& allocator,
2497#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 1
2498 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
2500 TARGET_TYPE *address,
2501 const ALLOCATOR& allocator,
2507#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 2
2508 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2511 TARGET_TYPE *address,
2512 const ALLOCATOR& allocator,
2519#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 3
2520 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2524 TARGET_TYPE *address,
2525 const ALLOCATOR& allocator,
2533#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 4
2534 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2539 TARGET_TYPE *address,
2540 const ALLOCATOR& allocator,
2549#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 5
2550 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2556 TARGET_TYPE *address,
2557 const ALLOCATOR& allocator,
2567#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 6
2568 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2575 TARGET_TYPE *address,
2576 const ALLOCATOR& allocator,
2587#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 7
2588 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2596 TARGET_TYPE *address,
2597 const ALLOCATOR& allocator,
2609#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 8
2610 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2619 TARGET_TYPE *address,
2620 const ALLOCATOR& allocator,
2633#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 9
2634 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2644 TARGET_TYPE *address,
2645 const ALLOCATOR& allocator,
2659#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 10
2660 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2671 TARGET_TYPE *address,
2672 const ALLOCATOR& allocator,
2687#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 11
2688 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2700 TARGET_TYPE *address,
2701 const ALLOCATOR& allocator,
2717#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 12
2718 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2731 TARGET_TYPE *address,
2732 const ALLOCATOR& allocator,
2749#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 13
2750 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2764 TARGET_TYPE *address,
2765 const ALLOCATOR& allocator,
2783#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 0
2784 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
2786 TARGET_TYPE *address,
2787 const ALLOCATOR& allocator,
2792#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 1
2793 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
2795 TARGET_TYPE *address,
2796 const ALLOCATOR& allocator,
2802#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 2
2803 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2806 TARGET_TYPE *address,
2807 const ALLOCATOR& allocator,
2814#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 3
2815 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2819 TARGET_TYPE *address,
2820 const ALLOCATOR& allocator,
2828#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 4
2829 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2834 TARGET_TYPE *address,
2835 const ALLOCATOR& allocator,
2844#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 5
2845 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2851 TARGET_TYPE *address,
2852 const ALLOCATOR& allocator,
2862#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 6
2863 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2870 TARGET_TYPE *address,
2871 const ALLOCATOR& allocator,
2882#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 7
2883 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2891 TARGET_TYPE *address,
2892 const ALLOCATOR& allocator,
2904#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 8
2905 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2914 TARGET_TYPE *address,
2915 const ALLOCATOR& allocator,
2928#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 9
2929 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2939 TARGET_TYPE *address,
2940 const ALLOCATOR& allocator,
2954#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 10
2955 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2966 TARGET_TYPE *address,
2967 const ALLOCATOR& allocator,
2982#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 11
2983 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
2995 TARGET_TYPE *address,
2996 const ALLOCATOR& allocator,
3012#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 12
3013 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3026 TARGET_TYPE *address,
3027 const ALLOCATOR& allocator,
3044#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_C >= 13
3045 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3059 TARGET_TYPE *address,
3060 const ALLOCATOR& allocator,
3081# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
3082 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
3084 TARGET_TYPE *address,
3085 const ALLOCATOR& allocator,
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,
3105 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
3107 TARGET_TYPE *address,
3108 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,
3137 template <
class TARGET_TYPE,
class ALLOCATOR>
3139 TARGET_TYPE *address,
3140 const ALLOCATOR& allocator,
3142 TARGET_TYPE *original);
3159 template <
class TARGET_TYPE,
class ALLOCATOR>
3161 TARGET_TYPE *address,
3162 const ALLOCATOR& allocator,
3164 TARGET_TYPE *original);
3166#if defined(BSLS_COMPILERFEATURES_GUARANTEED_COPY_ELISION)
3172 template <
class TARGET_TYPE,
class ALLOCATOR>
3173 static TARGET_TYPE make(
3174 const ALLOCATOR& allocator,
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,
3185#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
3188#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
3189#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT 13
3191#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D
3192#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
3194# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
3195#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 0
3196 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
3197 static TARGET_TYPE make(
3198 const ALLOCATOR& allocator,
3203#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 1
3204 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
3205 static TARGET_TYPE make(
3206 const ALLOCATOR& allocator,
3212#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 2
3213 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3215 static TARGET_TYPE make(
3216 const ALLOCATOR& allocator,
3223#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 3
3224 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3227 static TARGET_TYPE make(
3228 const ALLOCATOR& allocator,
3236#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 4
3237 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3241 static TARGET_TYPE make(
3242 const ALLOCATOR& allocator,
3251#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 5
3252 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3257 static TARGET_TYPE make(
3258 const ALLOCATOR& allocator,
3268#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 6
3269 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3275 static TARGET_TYPE make(
3276 const ALLOCATOR& allocator,
3287#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 7
3288 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3295 static TARGET_TYPE make(
3296 const ALLOCATOR& allocator,
3308#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 8
3309 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3317 static TARGET_TYPE make(
3318 const ALLOCATOR& allocator,
3331#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 9
3332 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3341 static TARGET_TYPE make(
3342 const ALLOCATOR& allocator,
3356#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 10
3357 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3367 static TARGET_TYPE make(
3368 const ALLOCATOR& allocator,
3383#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 11
3384 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3395 static TARGET_TYPE make(
3396 const ALLOCATOR& allocator,
3412#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 12
3413 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3425 static TARGET_TYPE make(
3426 const ALLOCATOR& allocator,
3443#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 13
3444 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3457 static TARGET_TYPE make(
3458 const ALLOCATOR& allocator,
3476#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 0
3477 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
3478 static TARGET_TYPE make(
3479 const ALLOCATOR& allocator,
3484#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 1
3485 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
3486 static TARGET_TYPE make(
3487 const ALLOCATOR& allocator,
3493#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 2
3494 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3496 static TARGET_TYPE make(
3497 const ALLOCATOR& allocator,
3504#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 3
3505 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3508 static TARGET_TYPE make(
3509 const ALLOCATOR& allocator,
3517#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 4
3518 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3522 static TARGET_TYPE make(
3523 const ALLOCATOR& allocator,
3532#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 5
3533 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3538 static TARGET_TYPE make(
3539 const ALLOCATOR& allocator,
3549#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 6
3550 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3556 static TARGET_TYPE make(
3557 const ALLOCATOR& allocator,
3568#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 7
3569 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3576 static TARGET_TYPE make(
3577 const ALLOCATOR& allocator,
3589#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 8
3590 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3598 static TARGET_TYPE make(
3599 const ALLOCATOR& allocator,
3612#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 9
3613 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3622 static TARGET_TYPE make(
3623 const ALLOCATOR& allocator,
3637#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 10
3638 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3648 static TARGET_TYPE make(
3649 const ALLOCATOR& allocator,
3664#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 11
3665 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3676 static TARGET_TYPE make(
3677 const ALLOCATOR& allocator,
3693#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 12
3694 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3706 static TARGET_TYPE make(
3707 const ALLOCATOR& allocator,
3724#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 13
3725 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3738 static TARGET_TYPE make(
3739 const ALLOCATOR& allocator,
3757#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 0
3758 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
3759 static TARGET_TYPE make(
3760 const ALLOCATOR& allocator,
3765#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 1
3766 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
3767 static TARGET_TYPE make(
3768 const ALLOCATOR& allocator,
3774#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 2
3775 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3777 static TARGET_TYPE make(
3778 const ALLOCATOR& allocator,
3785#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 3
3786 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3789 static TARGET_TYPE make(
3790 const ALLOCATOR& allocator,
3798#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 4
3799 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3803 static TARGET_TYPE make(
3804 const ALLOCATOR& allocator,
3813#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 5
3814 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3819 static TARGET_TYPE make(
3820 const ALLOCATOR& allocator,
3830#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 6
3831 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3837 static TARGET_TYPE make(
3838 const ALLOCATOR& allocator,
3849#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 7
3850 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3857 static TARGET_TYPE make(
3858 const ALLOCATOR& allocator,
3870#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 8
3871 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3879 static TARGET_TYPE make(
3880 const ALLOCATOR& allocator,
3893#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 9
3894 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3903 static TARGET_TYPE make(
3904 const ALLOCATOR& allocator,
3918#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 10
3919 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3929 static TARGET_TYPE make(
3930 const ALLOCATOR& allocator,
3945#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 11
3946 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3957 static TARGET_TYPE make(
3958 const ALLOCATOR& allocator,
3974#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 12
3975 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
3987 static TARGET_TYPE make(
3988 const ALLOCATOR& allocator,
4005#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 13
4006 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4019 static TARGET_TYPE make(
4020 const ALLOCATOR& allocator,
4040#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 0
4041 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
4042 static TARGET_TYPE make(
4043 const ALLOCATOR& allocator,
4048#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 1
4049 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
4050 static TARGET_TYPE make(
4051 const ALLOCATOR& allocator,
4057#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 2
4058 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4060 static TARGET_TYPE make(
4061 const ALLOCATOR& allocator,
4068#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 3
4069 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4072 static TARGET_TYPE make(
4073 const ALLOCATOR& allocator,
4081#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 4
4082 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4086 static TARGET_TYPE make(
4087 const ALLOCATOR& allocator,
4096#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 5
4097 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4102 static TARGET_TYPE make(
4103 const ALLOCATOR& allocator,
4113#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 6
4114 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4120 static TARGET_TYPE make(
4121 const ALLOCATOR& allocator,
4132#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 7
4133 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4140 static TARGET_TYPE make(
4141 const ALLOCATOR& allocator,
4153#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 8
4154 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4162 static TARGET_TYPE make(
4163 const ALLOCATOR& allocator,
4176#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 9
4177 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4186 static TARGET_TYPE make(
4187 const ALLOCATOR& allocator,
4201#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 10
4202 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4212 static TARGET_TYPE make(
4213 const ALLOCATOR& allocator,
4228#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 11
4229 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4240 static TARGET_TYPE make(
4241 const ALLOCATOR& allocator,
4257#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 12
4258 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4270 static TARGET_TYPE make(
4271 const ALLOCATOR& allocator,
4288#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 13
4289 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4302 static TARGET_TYPE make(
4303 const ALLOCATOR& allocator,
4321#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 0
4322 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
4323 static TARGET_TYPE make(
4324 const ALLOCATOR& allocator,
4329#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 1
4330 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
4331 static TARGET_TYPE make(
4332 const ALLOCATOR& allocator,
4338#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 2
4339 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4341 static TARGET_TYPE make(
4342 const ALLOCATOR& allocator,
4349#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 3
4350 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4353 static TARGET_TYPE make(
4354 const ALLOCATOR& allocator,
4362#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 4
4363 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4367 static TARGET_TYPE make(
4368 const ALLOCATOR& allocator,
4377#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 5
4378 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4383 static TARGET_TYPE make(
4384 const ALLOCATOR& allocator,
4394#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 6
4395 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4401 static TARGET_TYPE make(
4402 const ALLOCATOR& allocator,
4413#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 7
4414 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4421 static TARGET_TYPE make(
4422 const ALLOCATOR& allocator,
4434#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 8
4435 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4443 static TARGET_TYPE make(
4444 const ALLOCATOR& allocator,
4457#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 9
4458 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4467 static TARGET_TYPE make(
4468 const ALLOCATOR& allocator,
4482#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 10
4483 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4493 static TARGET_TYPE make(
4494 const ALLOCATOR& allocator,
4509#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 11
4510 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4521 static TARGET_TYPE make(
4522 const ALLOCATOR& allocator,
4538#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 12
4539 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4551 static TARGET_TYPE make(
4552 const ALLOCATOR& allocator,
4569#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 13
4570 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4583 static TARGET_TYPE make(
4584 const ALLOCATOR& allocator,
4602#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 0
4603 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
4604 static TARGET_TYPE make(
4605 const ALLOCATOR& allocator,
4610#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 1
4611 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
4612 static TARGET_TYPE make(
4613 const ALLOCATOR& allocator,
4619#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 2
4620 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4622 static TARGET_TYPE make(
4623 const ALLOCATOR& allocator,
4630#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 3
4631 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4634 static TARGET_TYPE make(
4635 const ALLOCATOR& allocator,
4643#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 4
4644 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4648 static TARGET_TYPE make(
4649 const ALLOCATOR& allocator,
4658#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 5
4659 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4664 static TARGET_TYPE make(
4665 const ALLOCATOR& allocator,
4675#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 6
4676 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4682 static TARGET_TYPE make(
4683 const ALLOCATOR& allocator,
4694#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 7
4695 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4702 static TARGET_TYPE make(
4703 const ALLOCATOR& allocator,
4715#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 8
4716 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4724 static TARGET_TYPE make(
4725 const ALLOCATOR& allocator,
4738#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 9
4739 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4748 static TARGET_TYPE make(
4749 const ALLOCATOR& allocator,
4763#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 10
4764 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4774 static TARGET_TYPE make(
4775 const ALLOCATOR& allocator,
4790#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 11
4791 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4802 static TARGET_TYPE make(
4803 const ALLOCATOR& allocator,
4819#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 12
4820 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4832 static TARGET_TYPE make(
4833 const ALLOCATOR& allocator,
4850#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_D >= 13
4851 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
4864 static TARGET_TYPE make(
4865 const ALLOCATOR& allocator,
4886# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
4887 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
4888 static TARGET_TYPE make(
4889 const ALLOCATOR& allocator,
4893 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
4894 static TARGET_TYPE make(
4895 const ALLOCATOR& allocator,
4899 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
4900 static TARGET_TYPE make(
4901 const ALLOCATOR& allocator,
4907 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
4908 static TARGET_TYPE make(
4909 const ALLOCATOR& allocator,
4913 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
4914 static TARGET_TYPE make(
4915 const ALLOCATOR& allocator,
4919 template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
4920 static TARGET_TYPE make(
4921 const ALLOCATOR& allocator,
4942template <
class ALLOC>
4943struct ConstructionUtil_IsAllocatorPtr;
4947template <
class ALLOC>
4953template <
class ALLOC>
4954struct ConstructionUtil_IsAllocatorPtr<ALLOC *>
5011template <
class TARGET_TYPE,
class ALLOCATOR>
5012struct ConstructionUtil_ConstructionTrait {
5016 typedef ConstructionUtil_Imp Imp;
5027 : Imp::e_USES_ALLOCATOR_TRAITS)
5039template <
class TYPE,
5042struct ConstructionUtil_AllocAdaptorUtil;
5048template <
class TYPE>
5049struct ConstructionUtil_AllocAdaptorUtil<TYPE, false, false> {
5056template <
class TYPE>
5057struct ConstructionUtil_AllocAdaptorUtil<TYPE, false, true> {
5063 template <
class ALLOC>
5069 template <
class ALLOC>
5077template <
class TYPE,
bool IS_BSLMA_AA>
5078struct ConstructionUtil_AllocAdaptorUtil<TYPE, true, IS_BSLMA_AA> {
5083 template <
class ALLOC>
5084 static typename TYPE::allocator_type adapt(
const ALLOC& a) {
return a; }
5093template <
class TARGET_TYPE,
class ALLOCATOR>
5097 const ALLOCATOR& allocator)
5105#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
5108#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
5109#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT 13
5111#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E
5112#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
5114# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
5115#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 0
5116template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
5120 const ALLOCATOR& allocator,
5133#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 1
5134template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
5138 const ALLOCATOR& allocator,
5153#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 2
5154template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5159 const ALLOCATOR& allocator,
5176#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 3
5177template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5183 const ALLOCATOR& allocator,
5202#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 4
5203template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5210 const ALLOCATOR& allocator,
5231#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 5
5232template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5240 const ALLOCATOR& allocator,
5263#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 6
5264template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5273 const ALLOCATOR& allocator,
5298#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 7
5299template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5309 const ALLOCATOR& allocator,
5336#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 8
5337template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5348 const ALLOCATOR& allocator,
5377#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 9
5378template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5390 const ALLOCATOR& allocator,
5421#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 10
5422template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5435 const ALLOCATOR& allocator,
5468#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 11
5469template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5483 const ALLOCATOR& allocator,
5518#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 12
5519template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5534 const ALLOCATOR& allocator,
5571#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 13
5572template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5588 const ALLOCATOR& allocator,
5629#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 0
5630template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
5634 const ALLOCATOR& allocator,
5647#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 1
5648template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
5652 const ALLOCATOR& allocator,
5667#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 2
5668template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5673 const ALLOCATOR& allocator,
5690#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 3
5691template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5697 const ALLOCATOR& allocator,
5716#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 4
5717template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5724 const ALLOCATOR& allocator,
5745#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 5
5746template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5754 const ALLOCATOR& allocator,
5777#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 6
5778template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5787 const ALLOCATOR& allocator,
5812#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 7
5813template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5823 const ALLOCATOR& allocator,
5850#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 8
5851template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5862 const ALLOCATOR& allocator,
5891#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 9
5892template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5904 const ALLOCATOR& allocator,
5935#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 10
5936template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5949 const ALLOCATOR& allocator,
5982#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 11
5983template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
5997 const ALLOCATOR& allocator,
6032#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 12
6033template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6048 const ALLOCATOR& allocator,
6085#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_E >= 13
6086template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6102 const ALLOCATOR& allocator,
6144# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
6145template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
6149 const ALLOCATOR& allocator,
6164template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
6168 const ALLOCATOR& allocator,
6184template <
class TARGET_TYPE,
class ALLOCATOR>
6188 const ALLOCATOR& allocator,
6189 TARGET_TYPE *original)
6206#if defined(BSLS_COMPILERFEATURES_GUARANTEED_COPY_ELISION)
6211template <
class TARGET_TYPE,
class ALLOCATOR>
6214ConstructionUtil::make(
const ALLOCATOR& allocator)
6219 return Imp::make<TARGET_TYPE>(allocator, Trait());
6222#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
6225#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
6226#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT 13
6228#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F
6229#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
6231# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
6232#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 0
6233template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
6236ConstructionUtil::make(
const ALLOCATOR& allocator,
6242 return Imp::make<TARGET_TYPE>(
6249#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 1
6250template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
6253ConstructionUtil::make(
const ALLOCATOR& allocator,
6260 return Imp::make<TARGET_TYPE>(
6268#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 2
6269template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6273ConstructionUtil::make(
const ALLOCATOR& allocator,
6281 return Imp::make<TARGET_TYPE>(
6290#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 3
6291template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6296ConstructionUtil::make(
const ALLOCATOR& allocator,
6305 return Imp::make<TARGET_TYPE>(
6315#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 4
6316template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6322ConstructionUtil::make(
const ALLOCATOR& allocator,
6332 return Imp::make<TARGET_TYPE>(
6343#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 5
6344template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6351ConstructionUtil::make(
const ALLOCATOR& allocator,
6362 return Imp::make<TARGET_TYPE>(
6374#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 6
6375template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6383ConstructionUtil::make(
const ALLOCATOR& allocator,
6395 return Imp::make<TARGET_TYPE>(
6408#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 7
6409template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6418ConstructionUtil::make(
const ALLOCATOR& allocator,
6431 return Imp::make<TARGET_TYPE>(
6445#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 8
6446template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6456ConstructionUtil::make(
const ALLOCATOR& allocator,
6470 return Imp::make<TARGET_TYPE>(
6485#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 9
6486template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6497ConstructionUtil::make(
const ALLOCATOR& allocator,
6512 return Imp::make<TARGET_TYPE>(
6528#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 10
6529template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6541ConstructionUtil::make(
const ALLOCATOR& allocator,
6557 return Imp::make<TARGET_TYPE>(
6574#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 11
6575template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6588ConstructionUtil::make(
const ALLOCATOR& allocator,
6605 return Imp::make<TARGET_TYPE>(
6623#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 12
6624template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6638ConstructionUtil::make(
const ALLOCATOR& allocator,
6656 return Imp::make<TARGET_TYPE>(
6675#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 13
6676template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6691ConstructionUtil::make(
const ALLOCATOR& allocator,
6710 return Imp::make<TARGET_TYPE>(
6732#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 0
6733template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
6736ConstructionUtil::make(
const ALLOCATOR& allocator,
6742 return Imp::make<TARGET_TYPE>(
6749#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 1
6750template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
6753ConstructionUtil::make(
const ALLOCATOR& allocator,
6760 return Imp::make<TARGET_TYPE>(
6768#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 2
6769template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6773ConstructionUtil::make(
const ALLOCATOR& allocator,
6781 return Imp::make<TARGET_TYPE>(
6790#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 3
6791template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6796ConstructionUtil::make(
const ALLOCATOR& allocator,
6805 return Imp::make<TARGET_TYPE>(
6815#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 4
6816template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6822ConstructionUtil::make(
const ALLOCATOR& allocator,
6832 return Imp::make<TARGET_TYPE>(
6843#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 5
6844template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6851ConstructionUtil::make(
const ALLOCATOR& allocator,
6862 return Imp::make<TARGET_TYPE>(
6874#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 6
6875template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6883ConstructionUtil::make(
const ALLOCATOR& allocator,
6895 return Imp::make<TARGET_TYPE>(
6908#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 7
6909template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6918ConstructionUtil::make(
const ALLOCATOR& allocator,
6931 return Imp::make<TARGET_TYPE>(
6945#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 8
6946template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6956ConstructionUtil::make(
const ALLOCATOR& allocator,
6970 return Imp::make<TARGET_TYPE>(
6985#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 9
6986template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
6997ConstructionUtil::make(
const ALLOCATOR& allocator,
7012 return Imp::make<TARGET_TYPE>(
7028#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 10
7029template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7041ConstructionUtil::make(
const ALLOCATOR& allocator,
7057 return Imp::make<TARGET_TYPE>(
7074#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 11
7075template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7088ConstructionUtil::make(
const ALLOCATOR& allocator,
7105 return Imp::make<TARGET_TYPE>(
7123#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 12
7124template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7138ConstructionUtil::make(
const ALLOCATOR& allocator,
7156 return Imp::make<TARGET_TYPE>(
7175#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_F >= 13
7176template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7191ConstructionUtil::make(
const ALLOCATOR& allocator,
7210 return Imp::make<TARGET_TYPE>(
7233# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
7234template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
7237ConstructionUtil::make(
const ALLOCATOR& allocator,
7244 return Imp::make<TARGET_TYPE>(
7252template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
7255ConstructionUtil::make(
const ALLOCATOR& allocator,
7262 return Imp::make<TARGET_TYPE>(
7279template <
class TARGET_TYPE,
class ALLOCATOR>
7283 TARGET_TYPE *address,
7284 const ALLOCATOR& allocator,
7287 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7290 AllocUtil::adapt(allocator));
7293template <
class TARGET_TYPE,
class ALLOCATOR>
7297 TARGET_TYPE *address,
7298 const ALLOCATOR& allocator,
7301 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7303 AllocUtil::adapt(allocator));
7306template <
class TARGET_TYPE,
class ALLOCATOR>
7310 TARGET_TYPE *address,
7317#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
7320#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
7321#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT 13
7323#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G
7324#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
7326# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
7327#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 0
7328template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
7332 TARGET_TYPE *address,
7333 const ALLOCATOR& allocator,
7337 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7340 AllocUtil::adapt(allocator),
7345#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 1
7346template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
7350 TARGET_TYPE *address,
7351 const ALLOCATOR& allocator,
7356 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7359 AllocUtil::adapt(allocator),
7365#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 2
7366template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7371 TARGET_TYPE *address,
7372 const ALLOCATOR& allocator,
7378 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7381 AllocUtil::adapt(allocator),
7388#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 3
7389template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7395 TARGET_TYPE *address,
7396 const ALLOCATOR& allocator,
7403 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7406 AllocUtil::adapt(allocator),
7414#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 4
7415template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7422 TARGET_TYPE *address,
7423 const ALLOCATOR& allocator,
7431 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7434 AllocUtil::adapt(allocator),
7443#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 5
7444template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7452 TARGET_TYPE *address,
7453 const ALLOCATOR& allocator,
7462 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7465 AllocUtil::adapt(allocator),
7475#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 6
7476template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7485 TARGET_TYPE *address,
7486 const ALLOCATOR& allocator,
7496 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7499 AllocUtil::adapt(allocator),
7510#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 7
7511template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7521 TARGET_TYPE *address,
7522 const ALLOCATOR& allocator,
7533 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7536 AllocUtil::adapt(allocator),
7548#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 8
7549template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7560 TARGET_TYPE *address,
7561 const ALLOCATOR& allocator,
7573 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7576 AllocUtil::adapt(allocator),
7589#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 9
7590template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7602 TARGET_TYPE *address,
7603 const ALLOCATOR& allocator,
7616 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7619 AllocUtil::adapt(allocator),
7633#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 10
7634template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7647 TARGET_TYPE *address,
7648 const ALLOCATOR& allocator,
7662 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7665 AllocUtil::adapt(allocator),
7680#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 11
7681template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7695 TARGET_TYPE *address,
7696 const ALLOCATOR& allocator,
7711 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7714 AllocUtil::adapt(allocator),
7730#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 12
7731template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7746 TARGET_TYPE *address,
7747 const ALLOCATOR& allocator,
7763 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7766 AllocUtil::adapt(allocator),
7783#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 13
7784template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7800 TARGET_TYPE *address,
7801 const ALLOCATOR& allocator,
7818 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7821 AllocUtil::adapt(allocator),
7840#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 0
7841template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
7845 TARGET_TYPE *address,
7846 const ALLOCATOR& allocator,
7850 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7853 AllocUtil::adapt(allocator));
7857#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 1
7858template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
7862 TARGET_TYPE *address,
7863 const ALLOCATOR& allocator,
7868 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7872 AllocUtil::adapt(allocator));
7876#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 2
7877template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7882 TARGET_TYPE *address,
7883 const ALLOCATOR& allocator,
7889 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7894 AllocUtil::adapt(allocator));
7898#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 3
7899template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7905 TARGET_TYPE *address,
7906 const ALLOCATOR& allocator,
7913 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7919 AllocUtil::adapt(allocator));
7923#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 4
7924template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7931 TARGET_TYPE *address,
7932 const ALLOCATOR& allocator,
7940 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7947 AllocUtil::adapt(allocator));
7951#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 5
7952template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7960 TARGET_TYPE *address,
7961 const ALLOCATOR& allocator,
7970 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
7978 AllocUtil::adapt(allocator));
7982#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 6
7983template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
7992 TARGET_TYPE *address,
7993 const ALLOCATOR& allocator,
8003 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8012 AllocUtil::adapt(allocator));
8016#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 7
8017template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8027 TARGET_TYPE *address,
8028 const ALLOCATOR& allocator,
8039 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8049 AllocUtil::adapt(allocator));
8053#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 8
8054template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8065 TARGET_TYPE *address,
8066 const ALLOCATOR& allocator,
8078 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8089 AllocUtil::adapt(allocator));
8093#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 9
8094template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8106 TARGET_TYPE *address,
8107 const ALLOCATOR& allocator,
8120 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8132 AllocUtil::adapt(allocator));
8136#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 10
8137template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8150 TARGET_TYPE *address,
8151 const ALLOCATOR& allocator,
8165 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8178 AllocUtil::adapt(allocator));
8182#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 11
8183template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8197 TARGET_TYPE *address,
8198 const ALLOCATOR& allocator,
8213 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8227 AllocUtil::adapt(allocator));
8231#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 12
8232template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8247 TARGET_TYPE *address,
8248 const ALLOCATOR& allocator,
8264 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8279 AllocUtil::adapt(allocator));
8283#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 13
8284template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8300 TARGET_TYPE *address,
8301 const ALLOCATOR& allocator,
8318 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8334 AllocUtil::adapt(allocator));
8339#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 0
8340template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
8344 TARGET_TYPE *address,
8354#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 1
8355template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
8359 TARGET_TYPE *address,
8371#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 2
8372template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8377 TARGET_TYPE *address,
8391#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 3
8392template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8398 TARGET_TYPE *address,
8414#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 4
8415template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8422 TARGET_TYPE *address,
8440#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 5
8441template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8449 TARGET_TYPE *address,
8469#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 6
8470template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8479 TARGET_TYPE *address,
8501#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 7
8502template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8512 TARGET_TYPE *address,
8536#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 8
8537template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8548 TARGET_TYPE *address,
8574#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 9
8575template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8587 TARGET_TYPE *address,
8615#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 10
8616template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8629 TARGET_TYPE *address,
8659#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 11
8660template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8674 TARGET_TYPE *address,
8706#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 12
8707template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8722 TARGET_TYPE *address,
8756#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 13
8757template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8773 TARGET_TYPE *address,
8811#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 0
8812template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
8816 TARGET_TYPE *address,
8817 const ALLOCATOR& allocator,
8821 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8824 AllocUtil::adapt(allocator),
8829#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 1
8830template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
8834 TARGET_TYPE *address,
8835 const ALLOCATOR& allocator,
8840 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8843 AllocUtil::adapt(allocator),
8849#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 2
8850template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8855 TARGET_TYPE *address,
8856 const ALLOCATOR& allocator,
8862 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8865 AllocUtil::adapt(allocator),
8872#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 3
8873template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8879 TARGET_TYPE *address,
8880 const ALLOCATOR& allocator,
8887 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8890 AllocUtil::adapt(allocator),
8898#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 4
8899template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8906 TARGET_TYPE *address,
8907 const ALLOCATOR& allocator,
8915 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8918 AllocUtil::adapt(allocator),
8927#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 5
8928template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8936 TARGET_TYPE *address,
8937 const ALLOCATOR& allocator,
8946 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8949 AllocUtil::adapt(allocator),
8959#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 6
8960template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
8969 TARGET_TYPE *address,
8970 const ALLOCATOR& allocator,
8980 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
8983 AllocUtil::adapt(allocator),
8994#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 7
8995template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9005 TARGET_TYPE *address,
9006 const ALLOCATOR& allocator,
9017 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9020 AllocUtil::adapt(allocator),
9032#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 8
9033template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9044 TARGET_TYPE *address,
9045 const ALLOCATOR& allocator,
9057 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9060 AllocUtil::adapt(allocator),
9073#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 9
9074template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9086 TARGET_TYPE *address,
9087 const ALLOCATOR& allocator,
9100 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9103 AllocUtil::adapt(allocator),
9117#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 10
9118template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9131 TARGET_TYPE *address,
9132 const ALLOCATOR& allocator,
9146 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9149 AllocUtil::adapt(allocator),
9164#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 11
9165template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9179 TARGET_TYPE *address,
9180 const ALLOCATOR& allocator,
9195 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9198 AllocUtil::adapt(allocator),
9214#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 12
9215template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9230 TARGET_TYPE *address,
9231 const ALLOCATOR& allocator,
9247 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9250 AllocUtil::adapt(allocator),
9267#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 13
9268template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9284 TARGET_TYPE *address,
9285 const ALLOCATOR& allocator,
9302 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9305 AllocUtil::adapt(allocator),
9324#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 0
9325template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
9329 TARGET_TYPE *address,
9330 const ALLOCATOR& allocator,
9334 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9337 AllocUtil::adapt(allocator));
9341#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 1
9342template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
9346 TARGET_TYPE *address,
9347 const ALLOCATOR& allocator,
9352 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9356 AllocUtil::adapt(allocator));
9360#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 2
9361template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9366 TARGET_TYPE *address,
9367 const ALLOCATOR& allocator,
9373 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9378 AllocUtil::adapt(allocator));
9382#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 3
9383template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9389 TARGET_TYPE *address,
9390 const ALLOCATOR& allocator,
9397 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9403 AllocUtil::adapt(allocator));
9407#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 4
9408template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9415 TARGET_TYPE *address,
9416 const ALLOCATOR& allocator,
9424 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9431 AllocUtil::adapt(allocator));
9435#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 5
9436template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9444 TARGET_TYPE *address,
9445 const ALLOCATOR& allocator,
9454 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9462 AllocUtil::adapt(allocator));
9466#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 6
9467template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9476 TARGET_TYPE *address,
9477 const ALLOCATOR& allocator,
9487 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9496 AllocUtil::adapt(allocator));
9500#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 7
9501template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9511 TARGET_TYPE *address,
9512 const ALLOCATOR& allocator,
9523 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9533 AllocUtil::adapt(allocator));
9537#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 8
9538template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9549 TARGET_TYPE *address,
9550 const ALLOCATOR& allocator,
9562 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9573 AllocUtil::adapt(allocator));
9577#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 9
9578template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9590 TARGET_TYPE *address,
9591 const ALLOCATOR& allocator,
9604 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9616 AllocUtil::adapt(allocator));
9620#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 10
9621template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9634 TARGET_TYPE *address,
9635 const ALLOCATOR& allocator,
9649 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9662 AllocUtil::adapt(allocator));
9666#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 11
9667template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9681 TARGET_TYPE *address,
9682 const ALLOCATOR& allocator,
9697 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9711 AllocUtil::adapt(allocator));
9715#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 12
9716template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9731 TARGET_TYPE *address,
9732 const ALLOCATOR& allocator,
9748 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9763 AllocUtil::adapt(allocator));
9767#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 13
9768template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9784 TARGET_TYPE *address,
9785 const ALLOCATOR& allocator,
9802 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
9818 AllocUtil::adapt(allocator));
9823#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 0
9824template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
9828 TARGET_TYPE *address,
9838#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 1
9839template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
9843 TARGET_TYPE *address,
9855#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 2
9856template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9861 TARGET_TYPE *address,
9875#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 3
9876template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9882 TARGET_TYPE *address,
9898#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 4
9899template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9906 TARGET_TYPE *address,
9924#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 5
9925template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9933 TARGET_TYPE *address,
9953#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 6
9954template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9963 TARGET_TYPE *address,
9985#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 7
9986template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
9996 TARGET_TYPE *address,
10020#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 8
10021template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10032 TARGET_TYPE *address,
10058#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 9
10059template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10071 TARGET_TYPE *address,
10099#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 10
10100template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10113 TARGET_TYPE *address,
10143#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 11
10144template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10158 TARGET_TYPE *address,
10190#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 12
10191template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10206 TARGET_TYPE *address,
10240#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_G >= 13
10241template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10257 TARGET_TYPE *address,
10296# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
10297template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
10301 TARGET_TYPE *address,
10302 const ALLOCATOR& allocator,
10307 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10309 bsl::allocator_arg,
10310 AllocUtil::adapt(allocator),
10315template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
10319 TARGET_TYPE *address,
10320 const ALLOCATOR& allocator,
10325 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10329 AllocUtil::adapt(allocator));
10332template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
10336 TARGET_TYPE *address,
10348template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
10352 TARGET_TYPE *address,
10353 const ALLOCATOR& allocator,
10358 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10360 bsl::allocator_arg,
10361 AllocUtil::adapt(allocator),
10366template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
10370 TARGET_TYPE *address,
10371 const ALLOCATOR& allocator,
10376 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10380 AllocUtil::adapt(allocator));
10383template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
10387 TARGET_TYPE *address,
10400template <
class TARGET_TYPE,
class ALLOCATOR>
10404 TARGET_TYPE *address,
10407 TARGET_TYPE *original)
10420template <
class TARGET_TYPE,
class ALLOCATOR>
10424 TARGET_TYPE *address,
10425 const ALLOCATOR& allocator,
10427 TARGET_TYPE *original)
10438 DestructionUtil::destroy(original);
10441#if defined(BSLS_COMPILERFEATURES_GUARANTEED_COPY_ELISION)
10446template <
class TARGET_TYPE,
class ALLOCATOR>
10449ConstructionUtil_Imp::make(
10450 const ALLOCATOR& allocator,
10453 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10454 return TARGET_TYPE(bsl::allocator_arg, AllocUtil::adapt(allocator));
10457template <
class TARGET_TYPE,
class ALLOCATOR>
10460ConstructionUtil_Imp::make(
10461 const ALLOCATOR& allocator,
10464 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10465 return TARGET_TYPE(AllocUtil::adapt(allocator));
10468template <
class TARGET_TYPE,
class ALLOCATOR>
10471ConstructionUtil_Imp::make(
10475 return TARGET_TYPE();
10478#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
10481#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
10482#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT 13
10484#ifndef BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H
10485#define BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT
10487# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
10488#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 0
10489template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
10492ConstructionUtil_Imp::make(
10493 const ALLOCATOR& allocator,
10497 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10498 return TARGET_TYPE(
10499 bsl::allocator_arg,
10500 AllocUtil::adapt(allocator),
10505#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 1
10506template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
10509ConstructionUtil_Imp::make(
10510 const ALLOCATOR& allocator,
10515 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10516 return TARGET_TYPE(
10517 bsl::allocator_arg,
10518 AllocUtil::adapt(allocator),
10524#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 2
10525template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10529ConstructionUtil_Imp::make(
10530 const ALLOCATOR& allocator,
10536 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10537 return TARGET_TYPE(
10538 bsl::allocator_arg,
10539 AllocUtil::adapt(allocator),
10546#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 3
10547template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10552ConstructionUtil_Imp::make(
10553 const ALLOCATOR& allocator,
10560 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10561 return TARGET_TYPE(
10562 bsl::allocator_arg,
10563 AllocUtil::adapt(allocator),
10571#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 4
10572template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10578ConstructionUtil_Imp::make(
10579 const ALLOCATOR& allocator,
10587 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10588 return TARGET_TYPE(
10589 bsl::allocator_arg,
10590 AllocUtil::adapt(allocator),
10599#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 5
10600template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10607ConstructionUtil_Imp::make(
10608 const ALLOCATOR& allocator,
10617 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10618 return TARGET_TYPE(
10619 bsl::allocator_arg,
10620 AllocUtil::adapt(allocator),
10630#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 6
10631template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10639ConstructionUtil_Imp::make(
10640 const ALLOCATOR& allocator,
10650 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10651 return TARGET_TYPE(
10652 bsl::allocator_arg,
10653 AllocUtil::adapt(allocator),
10664#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 7
10665template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10674ConstructionUtil_Imp::make(
10675 const ALLOCATOR& allocator,
10686 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10687 return TARGET_TYPE(
10688 bsl::allocator_arg,
10689 AllocUtil::adapt(allocator),
10701#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 8
10702template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10712ConstructionUtil_Imp::make(
10713 const ALLOCATOR& allocator,
10725 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10726 return TARGET_TYPE(
10727 bsl::allocator_arg,
10728 AllocUtil::adapt(allocator),
10741#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 9
10742template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10753ConstructionUtil_Imp::make(
10754 const ALLOCATOR& allocator,
10767 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10768 return TARGET_TYPE(
10769 bsl::allocator_arg,
10770 AllocUtil::adapt(allocator),
10784#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 10
10785template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10797ConstructionUtil_Imp::make(
10798 const ALLOCATOR& allocator,
10812 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10813 return TARGET_TYPE(
10814 bsl::allocator_arg,
10815 AllocUtil::adapt(allocator),
10830#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 11
10831template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10844ConstructionUtil_Imp::make(
10845 const ALLOCATOR& allocator,
10860 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10861 return TARGET_TYPE(
10862 bsl::allocator_arg,
10863 AllocUtil::adapt(allocator),
10879#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 12
10880template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10894ConstructionUtil_Imp::make(
10895 const ALLOCATOR& allocator,
10911 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10912 return TARGET_TYPE(
10913 bsl::allocator_arg,
10914 AllocUtil::adapt(allocator),
10931#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 13
10932template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
10947ConstructionUtil_Imp::make(
10948 const ALLOCATOR& allocator,
10965 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10966 return TARGET_TYPE(
10967 bsl::allocator_arg,
10968 AllocUtil::adapt(allocator),
10987#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 0
10988template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
10991ConstructionUtil_Imp::make(
10992 const ALLOCATOR& allocator,
10996 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
10997 return TARGET_TYPE(
10999 AllocUtil::adapt(allocator));
11003#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 1
11004template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
11007ConstructionUtil_Imp::make(
11008 const ALLOCATOR& allocator,
11013 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11014 return TARGET_TYPE(
11017 AllocUtil::adapt(allocator));
11021#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 2
11022template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11026ConstructionUtil_Imp::make(
11027 const ALLOCATOR& allocator,
11033 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11034 return TARGET_TYPE(
11038 AllocUtil::adapt(allocator));
11042#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 3
11043template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11048ConstructionUtil_Imp::make(
11049 const ALLOCATOR& allocator,
11056 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11057 return TARGET_TYPE(
11062 AllocUtil::adapt(allocator));
11066#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 4
11067template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11073ConstructionUtil_Imp::make(
11074 const ALLOCATOR& allocator,
11082 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11083 return TARGET_TYPE(
11089 AllocUtil::adapt(allocator));
11093#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 5
11094template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11101ConstructionUtil_Imp::make(
11102 const ALLOCATOR& allocator,
11111 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11112 return TARGET_TYPE(
11119 AllocUtil::adapt(allocator));
11123#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 6
11124template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11132ConstructionUtil_Imp::make(
11133 const ALLOCATOR& allocator,
11143 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11144 return TARGET_TYPE(
11152 AllocUtil::adapt(allocator));
11156#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 7
11157template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11166ConstructionUtil_Imp::make(
11167 const ALLOCATOR& allocator,
11178 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11179 return TARGET_TYPE(
11188 AllocUtil::adapt(allocator));
11192#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 8
11193template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11203ConstructionUtil_Imp::make(
11204 const ALLOCATOR& allocator,
11216 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11217 return TARGET_TYPE(
11227 AllocUtil::adapt(allocator));
11231#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 9
11232template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11243ConstructionUtil_Imp::make(
11244 const ALLOCATOR& allocator,
11257 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11258 return TARGET_TYPE(
11269 AllocUtil::adapt(allocator));
11273#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 10
11274template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11286ConstructionUtil_Imp::make(
11287 const ALLOCATOR& allocator,
11301 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11302 return TARGET_TYPE(
11314 AllocUtil::adapt(allocator));
11318#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 11
11319template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11332ConstructionUtil_Imp::make(
11333 const ALLOCATOR& allocator,
11348 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11349 return TARGET_TYPE(
11362 AllocUtil::adapt(allocator));
11366#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 12
11367template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11381ConstructionUtil_Imp::make(
11382 const ALLOCATOR& allocator,
11398 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11399 return TARGET_TYPE(
11413 AllocUtil::adapt(allocator));
11417#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 13
11418template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11433ConstructionUtil_Imp::make(
11434 const ALLOCATOR& allocator,
11451 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11452 return TARGET_TYPE(
11467 AllocUtil::adapt(allocator));
11472#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 0
11473template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
11476ConstructionUtil_Imp::make(
11481 return TARGET_TYPE(
11486#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 1
11487template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
11490ConstructionUtil_Imp::make(
11496 return TARGET_TYPE(
11502#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 2
11503template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11507ConstructionUtil_Imp::make(
11514 return TARGET_TYPE(
11521#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 3
11522template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11527ConstructionUtil_Imp::make(
11535 return TARGET_TYPE(
11543#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 4
11544template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11550ConstructionUtil_Imp::make(
11559 return TARGET_TYPE(
11568#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 5
11569template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11576ConstructionUtil_Imp::make(
11586 return TARGET_TYPE(
11596#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 6
11597template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11605ConstructionUtil_Imp::make(
11616 return TARGET_TYPE(
11627#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 7
11628template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11637ConstructionUtil_Imp::make(
11649 return TARGET_TYPE(
11661#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 8
11662template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11672ConstructionUtil_Imp::make(
11685 return TARGET_TYPE(
11698#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 9
11699template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11710ConstructionUtil_Imp::make(
11724 return TARGET_TYPE(
11738#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 10
11739template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11751ConstructionUtil_Imp::make(
11766 return TARGET_TYPE(
11781#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 11
11782template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11795ConstructionUtil_Imp::make(
11811 return TARGET_TYPE(
11827#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 12
11828template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11842ConstructionUtil_Imp::make(
11859 return TARGET_TYPE(
11876#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 13
11877template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11892ConstructionUtil_Imp::make(
11910 return TARGET_TYPE(
11930#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 0
11931template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
11934ConstructionUtil_Imp::make(
11935 const ALLOCATOR& allocator,
11939 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11940 return TARGET_TYPE(
11941 bsl::allocator_arg,
11942 AllocUtil::adapt(allocator),
11947#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 1
11948template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
11951ConstructionUtil_Imp::make(
11952 const ALLOCATOR& allocator,
11957 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11958 return TARGET_TYPE(
11959 bsl::allocator_arg,
11960 AllocUtil::adapt(allocator),
11966#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 2
11967template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11971ConstructionUtil_Imp::make(
11972 const ALLOCATOR& allocator,
11978 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
11979 return TARGET_TYPE(
11980 bsl::allocator_arg,
11981 AllocUtil::adapt(allocator),
11988#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 3
11989template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
11994ConstructionUtil_Imp::make(
11995 const ALLOCATOR& allocator,
12002 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12003 return TARGET_TYPE(
12004 bsl::allocator_arg,
12005 AllocUtil::adapt(allocator),
12013#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 4
12014template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12020ConstructionUtil_Imp::make(
12021 const ALLOCATOR& allocator,
12029 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12030 return TARGET_TYPE(
12031 bsl::allocator_arg,
12032 AllocUtil::adapt(allocator),
12041#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 5
12042template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12049ConstructionUtil_Imp::make(
12050 const ALLOCATOR& allocator,
12059 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12060 return TARGET_TYPE(
12061 bsl::allocator_arg,
12062 AllocUtil::adapt(allocator),
12072#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 6
12073template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12081ConstructionUtil_Imp::make(
12082 const ALLOCATOR& allocator,
12092 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12093 return TARGET_TYPE(
12094 bsl::allocator_arg,
12095 AllocUtil::adapt(allocator),
12106#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 7
12107template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12116ConstructionUtil_Imp::make(
12117 const ALLOCATOR& allocator,
12128 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12129 return TARGET_TYPE(
12130 bsl::allocator_arg,
12131 AllocUtil::adapt(allocator),
12143#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 8
12144template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12154ConstructionUtil_Imp::make(
12155 const ALLOCATOR& allocator,
12167 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12168 return TARGET_TYPE(
12169 bsl::allocator_arg,
12170 AllocUtil::adapt(allocator),
12183#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 9
12184template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12195ConstructionUtil_Imp::make(
12196 const ALLOCATOR& allocator,
12209 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12210 return TARGET_TYPE(
12211 bsl::allocator_arg,
12212 AllocUtil::adapt(allocator),
12226#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 10
12227template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12239ConstructionUtil_Imp::make(
12240 const ALLOCATOR& allocator,
12254 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12255 return TARGET_TYPE(
12256 bsl::allocator_arg,
12257 AllocUtil::adapt(allocator),
12272#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 11
12273template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12286ConstructionUtil_Imp::make(
12287 const ALLOCATOR& allocator,
12302 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12303 return TARGET_TYPE(
12304 bsl::allocator_arg,
12305 AllocUtil::adapt(allocator),
12321#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 12
12322template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12336ConstructionUtil_Imp::make(
12337 const ALLOCATOR& allocator,
12353 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12354 return TARGET_TYPE(
12355 bsl::allocator_arg,
12356 AllocUtil::adapt(allocator),
12373#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 13
12374template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12389ConstructionUtil_Imp::make(
12390 const ALLOCATOR& allocator,
12407 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12408 return TARGET_TYPE(
12409 bsl::allocator_arg,
12410 AllocUtil::adapt(allocator),
12429#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 0
12430template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
12433ConstructionUtil_Imp::make(
12434 const ALLOCATOR& allocator,
12438 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12439 return TARGET_TYPE(
12441 AllocUtil::adapt(allocator));
12445#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 1
12446template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
12449ConstructionUtil_Imp::make(
12450 const ALLOCATOR& allocator,
12455 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12456 return TARGET_TYPE(
12459 AllocUtil::adapt(allocator));
12463#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 2
12464template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12468ConstructionUtil_Imp::make(
12469 const ALLOCATOR& allocator,
12475 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12476 return TARGET_TYPE(
12480 AllocUtil::adapt(allocator));
12484#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 3
12485template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12490ConstructionUtil_Imp::make(
12491 const ALLOCATOR& allocator,
12498 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12499 return TARGET_TYPE(
12504 AllocUtil::adapt(allocator));
12508#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 4
12509template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12515ConstructionUtil_Imp::make(
12516 const ALLOCATOR& allocator,
12524 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12525 return TARGET_TYPE(
12531 AllocUtil::adapt(allocator));
12535#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 5
12536template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12543ConstructionUtil_Imp::make(
12544 const ALLOCATOR& allocator,
12553 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12554 return TARGET_TYPE(
12561 AllocUtil::adapt(allocator));
12565#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 6
12566template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12574ConstructionUtil_Imp::make(
12575 const ALLOCATOR& allocator,
12585 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12586 return TARGET_TYPE(
12594 AllocUtil::adapt(allocator));
12598#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 7
12599template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12608ConstructionUtil_Imp::make(
12609 const ALLOCATOR& allocator,
12620 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12621 return TARGET_TYPE(
12630 AllocUtil::adapt(allocator));
12634#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 8
12635template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12645ConstructionUtil_Imp::make(
12646 const ALLOCATOR& allocator,
12658 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12659 return TARGET_TYPE(
12669 AllocUtil::adapt(allocator));
12673#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 9
12674template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12685ConstructionUtil_Imp::make(
12686 const ALLOCATOR& allocator,
12699 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12700 return TARGET_TYPE(
12711 AllocUtil::adapt(allocator));
12715#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 10
12716template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12728ConstructionUtil_Imp::make(
12729 const ALLOCATOR& allocator,
12743 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12744 return TARGET_TYPE(
12756 AllocUtil::adapt(allocator));
12760#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 11
12761template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12774ConstructionUtil_Imp::make(
12775 const ALLOCATOR& allocator,
12790 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12791 return TARGET_TYPE(
12804 AllocUtil::adapt(allocator));
12808#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 12
12809template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12823ConstructionUtil_Imp::make(
12824 const ALLOCATOR& allocator,
12840 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12841 return TARGET_TYPE(
12855 AllocUtil::adapt(allocator));
12859#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 13
12860template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12875ConstructionUtil_Imp::make(
12876 const ALLOCATOR& allocator,
12893 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
12894 return TARGET_TYPE(
12909 AllocUtil::adapt(allocator));
12914#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 0
12915template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1>
12918ConstructionUtil_Imp::make(
12923 return TARGET_TYPE(
12928#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 1
12929template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01>
12932ConstructionUtil_Imp::make(
12938 return TARGET_TYPE(
12944#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 2
12945template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12949ConstructionUtil_Imp::make(
12956 return TARGET_TYPE(
12963#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 3
12964template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12969ConstructionUtil_Imp::make(
12977 return TARGET_TYPE(
12985#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 4
12986template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
12992ConstructionUtil_Imp::make(
13001 return TARGET_TYPE(
13010#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 5
13011template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13018ConstructionUtil_Imp::make(
13028 return TARGET_TYPE(
13038#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 6
13039template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13047ConstructionUtil_Imp::make(
13058 return TARGET_TYPE(
13069#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 7
13070template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13079ConstructionUtil_Imp::make(
13091 return TARGET_TYPE(
13103#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 8
13104template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13114ConstructionUtil_Imp::make(
13127 return TARGET_TYPE(
13140#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 9
13141template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13152ConstructionUtil_Imp::make(
13166 return TARGET_TYPE(
13180#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 10
13181template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13193ConstructionUtil_Imp::make(
13208 return TARGET_TYPE(
13223#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 11
13224template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13237ConstructionUtil_Imp::make(
13253 return TARGET_TYPE(
13269#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 12
13270template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13284ConstructionUtil_Imp::make(
13301 return TARGET_TYPE(
13318#if BSLMA_CONSTRUCTIONUTIL_VARIADIC_LIMIT_H >= 13
13319template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class ARGS_01,
13334ConstructionUtil_Imp::make(
13352 return TARGET_TYPE(
13373# ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
13374template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
13377ConstructionUtil_Imp::make(
13378 const ALLOCATOR& allocator,
13383 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
13384 return TARGET_TYPE(
13385 bsl::allocator_arg,
13386 AllocUtil::adapt(allocator),
13391template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
13394ConstructionUtil_Imp::make(
13395 const ALLOCATOR& allocator,
13400 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
13401 return TARGET_TYPE(
13404 AllocUtil::adapt(allocator));
13407template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
13410ConstructionUtil_Imp::make(
13416 return TARGET_TYPE(
13422template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
13425ConstructionUtil_Imp::make(
13426 const ALLOCATOR& allocator,
13431 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
13432 return TARGET_TYPE(
13433 bsl::allocator_arg,
13434 AllocUtil::adapt(allocator),
13439template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
13442ConstructionUtil_Imp::make(
13443 const ALLOCATOR& allocator,
13448 typedef ConstructionUtil_AllocAdaptorUtil<TARGET_TYPE> AllocUtil;
13449 return TARGET_TYPE(
13452 AllocUtil::adapt(allocator));
13455template <
class TARGET_TYPE,
class ALLOCATOR,
class ARG1,
class... ARGS>
13458ConstructionUtil_Imp::make(
13464 return TARGET_TYPE(
13478# error Not valid except when included from bslma_constructionutil.h
Definition bslma_allocator.h:545
static const bool value
Definition bslmf_integralconstant.h:267
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1917
#define BSLS_COMPILERFEATURES_FORWARD_REF(T)
Definition bsls_compilerfeatures.h:2343
#define BSLS_COMPILERFEATURES_FORWARD(T, V)
Definition bsls_compilerfeatures.h:2349
Definition baljsn_encoder_testtypes.h:76
Definition bslmf_integralconstant.h:261
Definition bslmf_isclass.h:164
Definition bslmf_isconvertible.h:875
Definition bslmf_isfundamental.h:330
Definition bslmf_ispointer.h:138
Definition bslmf_usesallocator.h:165
@ value
Definition bslma_constructionutil.h:1169
bsl::integral_constant< int, value > type
Definition bslma_constructionutil.h:1179
static void destructiveMove(TARGET_TYPE *address, const ALLOCATOR &allocator, bsl::integral_constant< int, e_BITWISE_MOVABLE_TRAITS >, TARGET_TYPE *original)
Definition bslma_constructionutil.h:1522
@ e_NIL_TRAITS
Definition bslma_constructionutil.h:885
@ e_BITWISE_MOVABLE_TRAITS
Definition bslma_constructionutil.h:886
@ e_USES_ALLOCATOR_ARG_T_TRAITS
Definition bslma_constructionutil.h:888
@ e_USES_ALLOCATOR_TRAITS
Definition bslma_constructionutil.h:887
static void construct(TARGET_TYPE *address, const ALLOCATOR &allocator, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS >)
Definition bslma_constructionutil.h:1380
static void construct(TARGET_TYPE *address, const ALLOCATOR &allocator)
Definition bslma_constructionutil.h:1244
static void destructiveMove(TARGET_TYPE *address, const ALLOCATOR &allocator, TARGET_TYPE *original)
Definition bslma_constructionutil.h:1296
static BSLS_KEYWORD_CONSTEXPR void * voidify(TYPE *address) BSLS_KEYWORD_NOEXCEPT
Definition bslma_pointerutil.h:350
Definition bslmf_isbitwisemoveable.h:718
static MovableRef< t_TYPE > move(t_TYPE &reference) BSLS_KEYWORD_NOEXCEPT
Definition bslmf_movableref.h:1067
Definition bslmf_usesallocatorargt.h:100