8#ifndef INCLUDED_BSLALG_SCALARPRIMITIVES
9#define INCLUDED_BSLALG_SCALARPRIMITIVES
120#include <bslscm_version.h>
152#ifndef BDE_DONT_ALLOW_TRANSITIVE_INCLUDES
160struct ScalarPrimitives_Imp;
193 template <
class TARGET_TYPE>
196 template <
class TARGET_TYPE>
210 template <
class TARGET_TYPE>
212 const TARGET_TYPE& original,
214 template <
class TARGET_TYPE>
216 const TARGET_TYPE& original,
231 template <
class TARGET_TYPE>
233 TARGET_TYPE& original,
235 template <
class TARGET_TYPE>
237 TARGET_TYPE& original,
259 template <
class TARGET_TYPE,
class ALLOCATOR>
261 TARGET_TYPE *original,
262 ALLOCATOR *allocator);
273 template <
class TARGET_TYPE>
274 static void construct(TARGET_TYPE *address,
276 template <
class TARGET_TYPE>
277 static void construct(TARGET_TYPE *address,
279 template <
class TARGET_TYPE,
class ARG1>
280 static void construct(TARGET_TYPE *address,
283 template <
class TARGET_TYPE,
class ARG1>
284 static void construct(TARGET_TYPE *address,
287 template <
class TARGET_TYPE,
class ARG1,
class ARG2>
288 static void construct(TARGET_TYPE *address,
292 template <
class TARGET_TYPE,
class ARG1,
class ARG2>
293 static void construct(TARGET_TYPE *address,
297 template <
class TARGET_TYPE,
298 class ARG1,
class ARG2,
class ARG3>
299 static void construct(TARGET_TYPE *address,
304 template <
class TARGET_TYPE,
305 class ARG1,
class ARG2,
class ARG3>
306 static void construct(TARGET_TYPE *address,
311 template <
class TARGET_TYPE,
312 class ARG1,
class ARG2,
class ARG3,
class ARG4>
313 static void construct(TARGET_TYPE *address,
319 template <
class TARGET_TYPE,
320 class ARG1,
class ARG2,
class ARG3,
class ARG4>
321 static void construct(TARGET_TYPE *address,
327 template <
class TARGET_TYPE,
328 class ARG1,
class ARG2,
class ARG3,
class ARG4,
330 static void construct(TARGET_TYPE *address,
337 template <
class TARGET_TYPE,
338 class ARG1,
class ARG2,
class ARG3,
class ARG4,
340 static void construct(TARGET_TYPE *address,
347 template <
class TARGET_TYPE,
348 class ARG1,
class ARG2,
class ARG3,
class ARG4,
349 class ARG5,
class ARG6>
350 static void construct(TARGET_TYPE *address,
358 template <
class TARGET_TYPE,
359 class ARG1,
class ARG2,
class ARG3,
class ARG4,
360 class ARG5,
class ARG6>
361 static void construct(TARGET_TYPE *address,
369 template <
class TARGET_TYPE,
370 class ARG1,
class ARG2,
class ARG3,
class ARG4,
371 class ARG5,
class ARG6,
class ARG7>
372 static void construct(TARGET_TYPE *address,
381 template <
class TARGET_TYPE,
382 class ARG1,
class ARG2,
class ARG3,
class ARG4,
383 class ARG5,
class ARG6,
class ARG7>
384 static void construct(TARGET_TYPE *address,
393 template <
class TARGET_TYPE,
394 class ARG1,
class ARG2,
class ARG3,
class ARG4,
395 class ARG5,
class ARG6,
class ARG7,
class ARG8>
396 static void construct(TARGET_TYPE *address,
406 template <
class TARGET_TYPE,
407 class ARG1,
class ARG2,
class ARG3,
class ARG4,
408 class ARG5,
class ARG6,
class ARG7,
class ARG8>
409 static void construct(TARGET_TYPE *address,
419 template <
class TARGET_TYPE,
420 class ARG1,
class ARG2,
class ARG3,
class ARG4,
421 class ARG5,
class ARG6,
class ARG7,
class ARG8,
423 static void construct(TARGET_TYPE *address,
434 template <
class TARGET_TYPE,
435 class ARG1,
class ARG2,
class ARG3,
class ARG4,
436 class ARG5,
class ARG6,
class ARG7,
class ARG8,
438 static void construct(TARGET_TYPE *address,
449 template <
class TARGET_TYPE,
450 class ARG1,
class ARG2,
class ARG3,
class ARG4,
451 class ARG5,
class ARG6,
class ARG7,
class ARG8,
452 class ARG9,
class ARG10>
453 static void construct(TARGET_TYPE *address,
465 template <
class TARGET_TYPE,
466 class ARG1,
class ARG2,
class ARG3,
class ARG4,
467 class ARG5,
class ARG6,
class ARG7,
class ARG8,
468 class ARG9,
class ARG10>
469 static void construct(TARGET_TYPE *address,
481 template <
class TARGET_TYPE,
482 class ARG1,
class ARG2,
class ARG3,
class ARG4,
483 class ARG5,
class ARG6,
class ARG7,
class ARG8,
484 class ARG9,
class ARG10,
class ARG11>
485 static void construct(TARGET_TYPE *address,
498 template <
class TARGET_TYPE,
499 class ARG1,
class ARG2,
class ARG3,
class ARG4,
500 class ARG5,
class ARG6,
class ARG7,
class ARG8,
501 class ARG9,
class ARG10,
class ARG11>
502 static void construct(TARGET_TYPE *address,
515 template <
class TARGET_TYPE,
516 class ARG1,
class ARG2,
class ARG3,
class ARG4,
517 class ARG5,
class ARG6,
class ARG7,
class ARG8,
518 class ARG9,
class ARG10,
class ARG11,
class ARG12>
519 static void construct(TARGET_TYPE *address,
533 template <
class TARGET_TYPE,
534 class ARG1,
class ARG2,
class ARG3,
class ARG4,
535 class ARG5,
class ARG6,
class ARG7,
class ARG8,
536 class ARG9,
class ARG10,
class ARG11,
class ARG12>
537 static void construct(TARGET_TYPE *address,
551 template <
class TARGET_TYPE,
552 class ARG1,
class ARG2,
class ARG3,
class ARG4,
553 class ARG5,
class ARG6,
class ARG7,
class ARG8,
554 class ARG9,
class ARG10,
class ARG11,
class ARG12,
556 static void construct(TARGET_TYPE *address,
571 template <
class TARGET_TYPE,
572 class ARG1,
class ARG2,
class ARG3,
class ARG4,
573 class ARG5,
class ARG6,
class ARG7,
class ARG8,
574 class ARG9,
class ARG10,
class ARG11,
class ARG12,
576 static void construct(TARGET_TYPE *address,
591 template <
class TARGET_TYPE,
592 class ARG1,
class ARG2,
class ARG3,
class ARG4,
593 class ARG5,
class ARG6,
class ARG7,
class ARG8,
594 class ARG9,
class ARG10,
class ARG11,
class ARG12,
595 class ARG13,
class ARG14>
596 static void construct(TARGET_TYPE *address,
612 template <
class TARGET_TYPE,
613 class ARG1,
class ARG2,
class ARG3,
class ARG4,
614 class ARG5,
class ARG6,
class ARG7,
class ARG8,
615 class ARG9,
class ARG10,
class ARG11,
class ARG12,
616 class ARG13,
class ARG14>
617 static void construct(TARGET_TYPE *address,
634#ifndef BDE_OMIT_INTERNAL_DEPRECATED
645 template <
class TARGET_TYPE>
646 static void destruct(TARGET_TYPE *
object,
657 template <
class TARGET_TYPE>
658 static void destruct(TARGET_TYPE *
object);
668 template <
class LHS_TYPE,
class RHS_TYPE>
669 static void swap(LHS_TYPE& lhs, RHS_TYPE& rhs);
704 template <
class TARGET_TYPE>
705 static TARGET_TYPE *
unconst(
const TARGET_TYPE *pointer);
714 template <
class TARGET_TYPE>
716 TARGET_TYPE *address,
719 template <
class TARGET_TYPE>
721 TARGET_TYPE *address,
724 template <
class TARGET_TYPE>
726 TARGET_TYPE *address,
729 template <
class TARGET_TYPE>
739 template <
class TARGET_TYPE>
741 TARGET_TYPE *address,
743 template <
class TARGET_TYPE>
756 template <
class TARGET_TYPE>
758 TARGET_TYPE *address,
759 const TARGET_TYPE& original,
762 template <
class TARGET_TYPE>
764 TARGET_TYPE *address,
765 const TARGET_TYPE& original,
768 template <
class TARGET_TYPE>
770 TARGET_TYPE *address,
771 const TARGET_TYPE& original,
774 template <
class TARGET_TYPE>
776 const TARGET_TYPE& original,
789 template <
class TARGET_TYPE>
791 TARGET_TYPE *address,
792 const TARGET_TYPE& original,
794 template <
class TARGET_TYPE>
796 const TARGET_TYPE& original,
811 template <
class TARGET_TYPE>
813 TARGET_TYPE *address,
814 TARGET_TYPE& original,
817 template <
class TARGET_TYPE>
819 TARGET_TYPE *address,
820 TARGET_TYPE& original,
823 template <
class TARGET_TYPE>
825 TARGET_TYPE *address,
826 TARGET_TYPE& original,
829 template <
class TARGET_TYPE>
831 TARGET_TYPE& original,
844 template <
class TARGET_TYPE>
846 TARGET_TYPE *address,
847 TARGET_TYPE& original,
849 template <
class TARGET_TYPE>
851 TARGET_TYPE& original,
862 template <
class TARGET_TYPE,
class ALLOCATOR>
864 TARGET_TYPE *address,
865 TARGET_TYPE *original,
866 ALLOCATOR *allocator,
868 template <
class TARGET_TYPE,
class ALLOCATOR>
870 TARGET_TYPE *original,
871 ALLOCATOR *allocator,
882 template <
class TARGET_TYPE,
class ARG1>
884 TARGET_TYPE *address,
897 template <
class TARGET_TYPE>
899 TARGET_TYPE *address,
902 template <
class TARGET_TYPE,
class ARG1>
904 TARGET_TYPE *address,
908 template <
class TARGET_TYPE,
class ARG1,
class ARG2>
910 TARGET_TYPE *address,
915 template <
class TARGET_TYPE,
916 class ARG1,
class ARG2,
class ARG3>
918 TARGET_TYPE *address,
924 template <
class TARGET_TYPE,
925 class ARG1,
class ARG2,
class ARG3,
class ARG4>
927 TARGET_TYPE *address,
934 template <
class TARGET_TYPE,
935 class ARG1,
class ARG2,
class ARG3,
class ARG4,
938 TARGET_TYPE *address,
946 template <
class TARGET_TYPE,
947 class ARG1,
class ARG2,
class ARG3,
class ARG4,
948 class ARG5,
class ARG6>
950 TARGET_TYPE *address,
959 template <
class TARGET_TYPE,
960 class ARG1,
class ARG2,
class ARG3,
class ARG4,
961 class ARG5,
class ARG6,
class ARG7>
963 TARGET_TYPE *address,
973 template <
class TARGET_TYPE,
974 class ARG1,
class ARG2,
class ARG3,
class ARG4,
975 class ARG5,
class ARG6,
class ARG7,
class ARG8>
977 TARGET_TYPE *address,
988 template <
class TARGET_TYPE,
989 class ARG1,
class ARG2,
class ARG3,
class ARG4,
990 class ARG5,
class ARG6,
class ARG7,
class ARG8,
993 TARGET_TYPE *address,
1005 template <
class TARGET_TYPE,
1006 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1007 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1008 class ARG9,
class ARG10>
1010 TARGET_TYPE *address,
1023 template <
class TARGET_TYPE,
1024 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1025 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1026 class ARG9,
class ARG10,
class ARG11>
1028 TARGET_TYPE *address,
1042 template <
class TARGET_TYPE,
1043 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1044 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1045 class ARG9,
class ARG10,
class ARG11,
class ARG12>
1047 TARGET_TYPE *address,
1062 template <
class TARGET_TYPE,
1063 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1064 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1065 class ARG9,
class ARG10,
class ARG11,
class ARG12,
1068 TARGET_TYPE *address,
1084 template <
class TARGET_TYPE,
1085 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1086 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1087 class ARG9,
class ARG10,
class ARG11,
class ARG12,
1088 class ARG13,
class ARG14>
1090 TARGET_TYPE *address,
1116 template <
class TARGET_TYPE>
1118 TARGET_TYPE *address,
1121 template <
class TARGET_TYPE,
class ARG1>
1123 TARGET_TYPE *address,
1127 template <
class TARGET_TYPE,
class ARG1,
class ARG2>
1129 TARGET_TYPE *address,
1134 template <
class TARGET_TYPE,
1135 class ARG1,
class ARG2,
class ARG3>
1137 TARGET_TYPE *address,
1143 template <
class TARGET_TYPE,
1144 class ARG1,
class ARG2,
class ARG3,
class ARG4>
1146 TARGET_TYPE *address,
1153 template <
class TARGET_TYPE,
1154 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1157 TARGET_TYPE *address,
1165 template <
class TARGET_TYPE,
1166 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1167 class ARG5,
class ARG6>
1169 TARGET_TYPE *address,
1178 template <
class TARGET_TYPE,
1179 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1180 class ARG5,
class ARG6,
class ARG7>
1182 TARGET_TYPE *address,
1192 template <
class TARGET_TYPE,
1193 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1194 class ARG5,
class ARG6,
class ARG7,
class ARG8>
1196 TARGET_TYPE *address,
1207 template <
class TARGET_TYPE,
1208 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1209 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1212 TARGET_TYPE *address,
1224 template <
class TARGET_TYPE,
1225 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1226 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1227 class ARG9,
class ARG10>
1229 TARGET_TYPE *address,
1242 template <
class TARGET_TYPE,
1243 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1244 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1245 class ARG9,
class ARG10,
class ARG11>
1247 TARGET_TYPE *address,
1261 template <
class TARGET_TYPE,
1262 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1263 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1264 class ARG9,
class ARG10,
class ARG11,
class ARG12>
1266 TARGET_TYPE *address,
1281 template <
class TARGET_TYPE,
1282 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1283 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1284 class ARG9,
class ARG10,
class ARG11,
class ARG12,
1287 TARGET_TYPE *address,
1303 template <
class TARGET_TYPE,
1304 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1305 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1306 class ARG9,
class ARG10,
class ARG11,
class ARG12,
1307 class ARG13,
class ARG14>
1309 TARGET_TYPE *address,
1335 template <
class TARGET_TYPE>
1336 static void construct(TARGET_TYPE *address,
1339 template <
class TARGET_TYPE,
class ARG1>
1340 static void construct(TARGET_TYPE *address,
1344 template <
class TARGET_TYPE,
class ARG1,
class ARG2>
1345 static void construct(TARGET_TYPE *address,
1350 template <
class TARGET_TYPE,
1351 class ARG1,
class ARG2,
class ARG3>
1352 static void construct(TARGET_TYPE *address,
1358 template <
class TARGET_TYPE,
1359 class ARG1,
class ARG2,
class ARG3,
class ARG4>
1360 static void construct(TARGET_TYPE *address,
1367 template <
class TARGET_TYPE,
1368 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1370 static void construct(TARGET_TYPE *address,
1378 template <
class TARGET_TYPE,
1379 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1380 class ARG5,
class ARG6>
1381 static void construct(TARGET_TYPE *address,
1390 template <
class TARGET_TYPE,
1391 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1392 class ARG5,
class ARG6,
class ARG7>
1393 static void construct(TARGET_TYPE *address,
1403 template <
class TARGET_TYPE,
1404 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1405 class ARG5,
class ARG6,
class ARG7,
class ARG8>
1406 static void construct(TARGET_TYPE *address,
1417 template <
class TARGET_TYPE,
1418 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1419 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1421 static void construct(TARGET_TYPE *address,
1433 template <
class TARGET_TYPE,
1434 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1435 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1436 class ARG9,
class ARG10>
1437 static void construct(TARGET_TYPE *address,
1450 template <
class TARGET_TYPE,
1451 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1452 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1453 class ARG9,
class ARG10,
class ARG11>
1454 static void construct(TARGET_TYPE *address,
1468 template <
class TARGET_TYPE,
1469 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1470 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1471 class ARG9,
class ARG10,
class ARG11,
class ARG12>
1472 static void construct(TARGET_TYPE *address,
1487 template <
class TARGET_TYPE,
1488 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1489 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1490 class ARG9,
class ARG10,
class ARG11,
class ARG12,
1492 static void construct(TARGET_TYPE *address,
1508 template <
class TARGET_TYPE,
1509 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1510 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1511 class ARG9,
class ARG10,
class ARG11,
class ARG12,
1512 class ARG13,
class ARG14>
1513 static void construct(TARGET_TYPE *address,
1538 template <
class LHS_TYPE,
class RHS_TYPE>
1539 static void swap(LHS_TYPE& lhs,
1542 template <
class LHS_TYPE,
class RHS_TYPE>
1543 static void swap(LHS_TYPE& lhs,
1561#if defined(BSLS_PLATFORM_CMP_IBM) && BSLS_PLATFORM_CMP_VERSION < 0x0d01
1562 #define BSLALG_SCALARPRIMITIVES_XLC_PLACEMENT_NEW_FIX \
1563 BSLS_PERFORMANCEHINT_OPTIMIZATION_FENCE
1565 #define BSLALG_SCALARPRIMITIVES_XLC_PLACEMENT_NEW_FIX
1574template <
class TARGET_TYPE>
1596template <
class TARGET_TYPE>
1614template <
class TARGET_TYPE>
1618 const TARGET_TYPE& original,
1636template <
class TARGET_TYPE>
1640 const TARGET_TYPE& original,
1657template <
class TARGET_TYPE>
1661 TARGET_TYPE& original,
1679template <
class TARGET_TYPE>
1683 TARGET_TYPE& original,
1700template <
class TARGET_TYPE,
class ALLOCATOR>
1704 TARGET_TYPE *original,
1705 ALLOCATOR *allocator)
1723template <
class TARGET_TYPE>
1742template <
class TARGET_TYPE>
1750 ::new (address) TARGET_TYPE();
1754template <
class TARGET_TYPE,
class ARG1>
1777template <
class TARGET_TYPE,
class ARG1>
1786 ::new (address) TARGET_TYPE(a1);
1790template <
class TARGET_TYPE,
class ARG1,
class ARG2>
1811template <
class TARGET_TYPE,
class ARG1,
class ARG2>
1821 ::new (address) TARGET_TYPE(a1, a2);
1825template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3>
1849template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3>
1860 ::new (address) TARGET_TYPE(a1, a2, a3);
1864template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
1890template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
1903 ::new (address) TARGET_TYPE(a1, a2, a3, a4);
1907template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
1908 class ARG4,
class ARG5>
1934template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
1935 class ARG4,
class ARG5>
1948 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5);
1952template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
1953 class ARG4,
class ARG5,
class ARG6>
1975 a1, a2, a3, a4, a5, a6,
1980template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
1981 class ARG4,
class ARG5,
class ARG6>
1995 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6);
1999template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2000 class ARG4,
class ARG5,
class ARG6,
class ARG7>
2023 a1, a2, a3, a4, a5, a6, a7,
2028template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2029 class ARG4,
class ARG5,
class ARG6,
class ARG7>
2044 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7);
2048template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2049 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2074 a1, a2, a3, a4, a5, a6, a7, a8,
2079template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2080 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2097 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8);
2101template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2102 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2103 class ARG8,
class ARG9>
2128 a1, a2, a3, a4, a5, a6, a7, a8, a9,
2133template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2134 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2135 class ARG8,
class ARG9>
2152 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9);
2156template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2157 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2158 class ARG8,
class ARG9,
class ARG10>
2184 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
2189template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2190 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2191 class ARG8,
class ARG9,
class ARG10>
2209 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
2213template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2214 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2215 class ARG8,
class ARG9,
class ARG10,
class ARG11>
2242 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11,
2247template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2248 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2249 class ARG8,
class ARG9,
class ARG10,
class ARG11>
2268 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
2272template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2273 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2274 class ARG8,
class ARG9,
class ARG10,
class ARG11,
2303 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12,
2308template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2309 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2310 class ARG8,
class ARG9,
class ARG10,
class ARG11,
2331 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9,
2336template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2337 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2338 class ARG8,
class ARG9,
class ARG10,
class ARG11,
2339 class ARG12,
class ARG13>
2368 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13,
2373template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2374 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2375 class ARG8,
class ARG9,
class ARG10,
class ARG11,
2376 class ARG12,
class ARG13>
2397 ::new (address) TARGET_TYPE(
2398 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
2402template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2403 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2404 class ARG8,
class ARG9,
class ARG10,
class ARG11,
2405 class ARG12,
class ARG13,
class ARG14>
2435 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
2440template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2441 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2442 class ARG8,
class ARG9,
class ARG10,
class ARG11,
2443 class ARG12,
class ARG13,
class ARG14>
2465 ::new (address) TARGET_TYPE(
2466 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
2474#ifndef BDE_OMIT_INTERNAL_DEPRECATED
2478template <
class TARGET_TYPE>
2482 bslma::DestructionUtil::destroy(address);
2485template <
class TARGET_TYPE>
2489 bslma::DestructionUtil::destroy(address);
2500template <
class LHS_TYPE,
class RHS_TYPE>
2517template <
class TARGET_TYPE>
2521 return const_cast<TARGET_TYPE *
>(pointer);
2526template <
class TARGET_TYPE>
2530 TARGET_TYPE *address,
2534 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator);
2538template <
class TARGET_TYPE>
2542 TARGET_TYPE *address,
2546 ::new (address) TARGET_TYPE(allocator);
2550template <
class TARGET_TYPE>
2554 TARGET_TYPE *address,
2563template <
class TARGET_TYPE>
2567 TARGET_TYPE *address,
2571 ::new (address) TARGET_TYPE();
2575template <
class TARGET_TYPE>
2579 TARGET_TYPE *address,
2588 ::new (address) TARGET_TYPE();
2591 memset(
reinterpret_cast<char *
>(address), 0,
sizeof *address);
2595template <
class TARGET_TYPE>
2599 TARGET_TYPE *address,
2602 ::new (address) TARGET_TYPE();
2608template <
class TARGET_TYPE>
2612 TARGET_TYPE *address,
2613 const TARGET_TYPE& original,
2617 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, original);
2621template <
class TARGET_TYPE>
2625 TARGET_TYPE *address,
2626 const TARGET_TYPE& original,
2630 ::new (address) TARGET_TYPE(original, allocator);
2634template <
class TARGET_TYPE>
2638 TARGET_TYPE *address,
2639 const TARGET_TYPE& original,
2651 ::new (address) TARGET_TYPE(original);
2654#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2655#pragma GCC diagnostic push
2656#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
2658 memcpy((
void *)address,
2661#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2662#pragma GCC diagnostic pop
2667template <
class TARGET_TYPE>
2671 TARGET_TYPE *address,
2672 const TARGET_TYPE& original,
2676 ::new (address) TARGET_TYPE(original);
2680template <
class TARGET_TYPE>
2684 TARGET_TYPE *address,
2685 const TARGET_TYPE& original,
2696 ::new (address) TARGET_TYPE(original);
2699#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2700#pragma GCC diagnostic push
2701#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
2703 memcpy((
void *)address,
2706#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2707#pragma GCC diagnostic pop
2712template <
class TARGET_TYPE>
2716 TARGET_TYPE *address,
2717 const TARGET_TYPE& original,
2720 ::new (address) TARGET_TYPE(original);
2726template <
class TARGET_TYPE>
2730 TARGET_TYPE *address,
2731 TARGET_TYPE& original,
2735 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator,
2739template <
class TARGET_TYPE>
2743 TARGET_TYPE *address,
2744 TARGET_TYPE& original,
2752template <
class TARGET_TYPE>
2756 TARGET_TYPE *address,
2757 TARGET_TYPE& original,
2769 ::new (address) TARGET_TYPE(original);
2771#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2772#pragma GCC diagnostic push
2773#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
2776#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2777#pragma GCC diagnostic pop
2782template <
class TARGET_TYPE>
2786 TARGET_TYPE *address,
2787 TARGET_TYPE& original,
2794template <
class TARGET_TYPE>
2798 TARGET_TYPE *address,
2799 TARGET_TYPE& original,
2810 ::new (address) TARGET_TYPE(original);
2812#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2813#pragma GCC diagnostic push
2814#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
2816 memcpy((
void *)address,
2819#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2820#pragma GCC diagnostic pop
2825template <
class TARGET_TYPE>
2829 TARGET_TYPE *address,
2830 TARGET_TYPE& original,
2838template <
class TARGET_TYPE,
class ALLOCATOR>
2842 TARGET_TYPE *address,
2843 TARGET_TYPE *original,
2855 ::new (address) TARGET_TYPE(*original);
2858#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2859#pragma GCC diagnostic push
2860#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
2862 memcpy((
void *)address, original,
sizeof *original);
2863#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2864#pragma GCC diagnostic pop
2869template <
class TARGET_TYPE,
class ALLOCATOR>
2873 TARGET_TYPE *address,
2874 TARGET_TYPE *original,
2875 ALLOCATOR *allocator,
2879 bslma::DestructionUtil::destroy(original);
2884template <
class TARGET_TYPE,
class ARG1>
2888 TARGET_TYPE *address,
2901 ::new (address) TARGET_TYPE(a1);
2910template <
class TARGET_TYPE>
2914 TARGET_TYPE *address,
2918 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator);
2922template <
class TARGET_TYPE>
2926 TARGET_TYPE *address,
2930 ::new (address) TARGET_TYPE(allocator);
2934template <
class TARGET_TYPE>
2941 ::new (address) TARGET_TYPE();
2945template <
class TARGET_TYPE,
class ARG1>
2949 TARGET_TYPE *address,
2954 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1);
2958template <
class TARGET_TYPE,
class ARG1>
2962 TARGET_TYPE *address,
2967 ::new (address) TARGET_TYPE(a1, allocator);
2971template <
class TARGET_TYPE,
class ARG1>
2979 ::new (address) TARGET_TYPE(a1);
2983template <
class TARGET_TYPE,
class ARG1,
class ARG2>
2987 TARGET_TYPE *address,
2993 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2);
2997template <
class TARGET_TYPE,
class ARG1,
class ARG2>
3001 TARGET_TYPE *address,
3007 ::new (address) TARGET_TYPE(a1, a2, allocator);
3011template <
class TARGET_TYPE,
class ARG1,
class ARG2>
3020 ::new (address) TARGET_TYPE(a1, a2);
3024template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3>
3028 TARGET_TYPE *address,
3035 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3);
3039template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3>
3043 TARGET_TYPE *address,
3050 ::new (address) TARGET_TYPE(a1, a2, a3, allocator);
3054template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3>
3064 ::new (address) TARGET_TYPE(a1, a2, a3);
3068template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3073 TARGET_TYPE *address,
3081 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4);
3085template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3090 TARGET_TYPE *address,
3098 ::new (address) TARGET_TYPE(a1, a2, a3, a4, allocator);
3102template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3114 ::new (address) TARGET_TYPE(a1, a2, a3, a4);
3118template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3119 class ARG4,
class ARG5>
3123 TARGET_TYPE *address,
3132 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3137template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3138 class ARG4,
class ARG5>
3142 TARGET_TYPE *address,
3151 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, allocator);
3155template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3156 class ARG4,
class ARG5>
3168 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5);
3172template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3173 class ARG4,
class ARG5,
class ARG6>
3177 TARGET_TYPE *address,
3187 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3192template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3193 class ARG4,
class ARG5,
class ARG6>
3197 TARGET_TYPE *address,
3207 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, allocator);
3211template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3212 class ARG4,
class ARG5,
class ARG6>
3225 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6);
3229template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3230 class ARG4,
class ARG5,
class ARG6,
class ARG7>
3234 TARGET_TYPE *address,
3245 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3250template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3251 class ARG4,
class ARG5,
class ARG6,
class ARG7>
3255 TARGET_TYPE *address,
3266 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, allocator);
3270template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3271 class ARG4,
class ARG5,
class ARG6,
class ARG7>
3285 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7);
3289template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3290 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3295 TARGET_TYPE *address,
3307 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3312template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3313 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3318 TARGET_TYPE *address,
3330 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, allocator);
3334template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3335 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3351 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8);
3355template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3356 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3357 class ARG8,
class ARG9>
3361 TARGET_TYPE *address,
3374 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3375 a5, a6, a7, a8, a9);
3379template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3380 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3381 class ARG8,
class ARG9>
3385 TARGET_TYPE *address,
3398 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9, allocator);
3402template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3403 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3404 class ARG8,
class ARG9>
3420 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9);
3424template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3425 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3426 class ARG8,
class ARG9,
class ARG10>
3430 TARGET_TYPE *address,
3444 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3445 a5, a6, a7, a8, a9, a10);
3449template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3450 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3451 class ARG8,
class ARG9,
class ARG10>
3455 TARGET_TYPE *address,
3469 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
3474template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3475 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3476 class ARG8,
class ARG9,
class ARG10>
3493 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
3497template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3498 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3499 class ARG8,
class ARG9,
class ARG10,
class ARG11>
3503 TARGET_TYPE *address,
3518 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3519 a5, a6, a7, a8, a9, a10, a11);
3523template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3524 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3525 class ARG8,
class ARG9,
class ARG10,
class ARG11>
3529 TARGET_TYPE *address,
3544 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11,
3549template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3550 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3551 class ARG8,
class ARG9,
class ARG10,
class ARG11>
3569 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
3573template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3574 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3575 class ARG8,
class ARG9,
class ARG10,
class ARG11,
3580 TARGET_TYPE *address,
3596 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3597 a5, a6, a7, a8, a9, a10, a11, a12);
3601template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3602 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3603 class ARG8,
class ARG9,
class ARG10,
class ARG11,
3608 TARGET_TYPE *address,
3624 ::new (address) TARGET_TYPE(
3625 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12,
3630template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3631 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3632 class ARG8,
class ARG9,
class ARG10,
class ARG11,
3652 ::new (address) TARGET_TYPE(
3653 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
3657template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3658 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3659 class ARG8,
class ARG9,
class ARG10,
class ARG11,
3660 class ARG12,
class ARG13>
3664 TARGET_TYPE *address,
3681 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3682 a5, a6, a7, a8, a9, a10, a11, a12, a13);
3686template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3687 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3688 class ARG8,
class ARG9,
class ARG10,
class ARG11,
3689 class ARG12,
class ARG13>
3693 TARGET_TYPE *address,
3710 ::new (address) TARGET_TYPE(
3711 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13,
3716template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3717 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3718 class ARG8,
class ARG9,
class ARG10,
class ARG11,
3719 class ARG12,
class ARG13>
3739 ::new (address) TARGET_TYPE(
3740 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
3744template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3745 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3746 class ARG8,
class ARG9,
class ARG10,
class ARG11,
3747 class ARG12,
class ARG13,
class ARG14>
3751 TARGET_TYPE *address,
3769 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3770 a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
3774template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3775 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3776 class ARG8,
class ARG9,
class ARG10,
class ARG11,
3777 class ARG12,
class ARG13,
class ARG14>
3781 TARGET_TYPE *address,
3799 ::new (address) TARGET_TYPE(
3800 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
3805template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3806 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3807 class ARG8,
class ARG9,
class ARG10,
class ARG11,
3808 class ARG12,
class ARG13,
class ARG14>
3829 ::new (address) TARGET_TYPE(
3830 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
3836template <
class LHS_TYPE,
class RHS_TYPE>
3853 char arena[
sizeof lhs];
3866template <
class LHS_TYPE,
class RHS_TYPE>
3878#ifndef BDE_OPENSOURCE_PUBLICATION
#define BSLALG_SCALARPRIMITIVES_XLC_PLACEMENT_NEW_FIX
Definition bslalg_scalarprimitives.h:1565
Definition bslma_allocator.h:545
bslalg::ScalarPrimitives bslalg_ScalarPrimitives
This alias is defined for backward compatibility.
Definition bslalg_scalarprimitives.h:3884
#define BSLMF_ASSERT(expr)
Definition bslmf_assert.h:231
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1917
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
#define BSLS_KEYWORD_CONSTEXPR_CPP17
Definition bsls_keyword.h:639
#define BSLS_UTIL_ADDRESSOF(OBJ)
Definition bsls_util.h:296
Definition bdlc_flathashmap.h:2218
Definition bslmf_integralconstant.h:261
Definition bslmf_isfundamental.h:330
Definition bslmf_ispointer.h:138
Definition bslmf_issame.h:146
Definition bslmf_istriviallydefaultconstructible.h:296
Definition bslalg_scalarprimitives.h:683
static void copyConstruct(TARGET_TYPE *address, const TARGET_TYPE &original, bslma::Allocator *allocator, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
Definition bslalg_scalarprimitives.h:2611
static void defaultConstruct(TARGET_TYPE *address, bslma::Allocator *allocator, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
Definition bslalg_scalarprimitives.h:2529
static void construct(TARGET_TYPE *address, const ARG1 &a1, bslma::Allocator *allocator, bsl::integral_constant< int, e_BITWISE_COPYABLE_TRAITS > *)
Definition bslalg_scalarprimitives.h:2887
static void swap(LHS_TYPE &lhs, RHS_TYPE &rhs, bsl::integral_constant< int, e_BITWISE_MOVEABLE_TRAITS > *)
Definition bslalg_scalarprimitives.h:3837
static TARGET_TYPE * unconst(const TARGET_TYPE *pointer)
Definition bslalg_scalarprimitives.h:2519
@ e_USES_ALLOCATOR_ARG_T_TRAITS
Definition bslalg_scalarprimitives.h:691
@ e_HAS_TRIVIAL_DEFAULT_CTOR_TRAITS
Definition bslalg_scalarprimitives.h:693
@ e_BITWISE_MOVEABLE_TRAITS
Definition bslalg_scalarprimitives.h:695
@ e_BITWISE_COPYABLE_TRAITS
Definition bslalg_scalarprimitives.h:694
@ e_USES_BSLMA_ALLOCATOR_TRAITS
Definition bslalg_scalarprimitives.h:692
@ e_NIL_TRAITS
Definition bslalg_scalarprimitives.h:696
static void destructiveMove(TARGET_TYPE *address, TARGET_TYPE *original, ALLOCATOR *allocator, bsl::integral_constant< int, e_BITWISE_MOVEABLE_TRAITS > *)
Definition bslalg_scalarprimitives.h:2841
static void moveConstruct(TARGET_TYPE *address, TARGET_TYPE &original, bslma::Allocator *allocator, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
Definition bslalg_scalarprimitives.h:2729
Definition bslalg_scalarprimitives.h:173
static void defaultConstruct(TARGET_TYPE *address, bslma::Allocator *allocator)
Definition bslalg_scalarprimitives.h:1577
static void moveConstruct(TARGET_TYPE *address, TARGET_TYPE &original, bslma::Allocator *allocator)
Definition bslalg_scalarprimitives.h:1660
static void destruct(TARGET_TYPE *object, void *allocator)
Definition bslalg_scalarprimitives.h:2480
static void destructiveMove(TARGET_TYPE *address, TARGET_TYPE *original, ALLOCATOR *allocator)
Definition bslalg_scalarprimitives.h:1703
static void copyConstruct(TARGET_TYPE *address, const TARGET_TYPE &original, bslma::Allocator *allocator)
Definition bslalg_scalarprimitives.h:1617
static void construct(TARGET_TYPE *address, bslma::Allocator *allocator)
Definition bslalg_scalarprimitives.h:1726
static void swap(LHS_TYPE &lhs, RHS_TYPE &rhs)
Definition bslalg_scalarprimitives.h:2501
Definition bslma_usesbslmaallocator.h:344
Definition bslmf_isbitwisecopyable.h:298
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