8#ifndef INCLUDED_BSLALG_SCALARPRIMITIVES
9#define INCLUDED_BSLALG_SCALARPRIMITIVES
120#include <bslscm_version.h>
151#ifndef BDE_DONT_ALLOW_TRANSITIVE_INCLUDES
159struct ScalarPrimitives_Imp;
189 template <
class TARGET_TYPE>
192 template <
class TARGET_TYPE>
205 template <
class TARGET_TYPE>
207 const TARGET_TYPE& original,
209 template <
class TARGET_TYPE>
211 const TARGET_TYPE& original,
225 template <
class TARGET_TYPE>
227 TARGET_TYPE& original,
229 template <
class TARGET_TYPE>
231 TARGET_TYPE& original,
250 template <
class TARGET_TYPE,
class ALLOCATOR>
252 TARGET_TYPE *original,
253 ALLOCATOR *allocator);
264 template <
class TARGET_TYPE>
265 static void construct(TARGET_TYPE *address,
267 template <
class TARGET_TYPE>
268 static void construct(TARGET_TYPE *address,
270 template <
class TARGET_TYPE,
class ARG1>
271 static void construct(TARGET_TYPE *address,
274 template <
class TARGET_TYPE,
class ARG1>
275 static void construct(TARGET_TYPE *address,
278 template <
class TARGET_TYPE,
class ARG1,
class ARG2>
279 static void construct(TARGET_TYPE *address,
283 template <
class TARGET_TYPE,
class ARG1,
class ARG2>
284 static void construct(TARGET_TYPE *address,
288 template <
class TARGET_TYPE,
289 class ARG1,
class ARG2,
class ARG3>
290 static void construct(TARGET_TYPE *address,
295 template <
class TARGET_TYPE,
296 class ARG1,
class ARG2,
class ARG3>
297 static void construct(TARGET_TYPE *address,
302 template <
class TARGET_TYPE,
303 class ARG1,
class ARG2,
class ARG3,
class ARG4>
304 static void construct(TARGET_TYPE *address,
310 template <
class TARGET_TYPE,
311 class ARG1,
class ARG2,
class ARG3,
class ARG4>
312 static void construct(TARGET_TYPE *address,
318 template <
class TARGET_TYPE,
319 class ARG1,
class ARG2,
class ARG3,
class ARG4,
321 static void construct(TARGET_TYPE *address,
328 template <
class TARGET_TYPE,
329 class ARG1,
class ARG2,
class ARG3,
class ARG4,
331 static void construct(TARGET_TYPE *address,
338 template <
class TARGET_TYPE,
339 class ARG1,
class ARG2,
class ARG3,
class ARG4,
340 class ARG5,
class ARG6>
341 static void construct(TARGET_TYPE *address,
349 template <
class TARGET_TYPE,
350 class ARG1,
class ARG2,
class ARG3,
class ARG4,
351 class ARG5,
class ARG6>
352 static void construct(TARGET_TYPE *address,
360 template <
class TARGET_TYPE,
361 class ARG1,
class ARG2,
class ARG3,
class ARG4,
362 class ARG5,
class ARG6,
class ARG7>
363 static void construct(TARGET_TYPE *address,
372 template <
class TARGET_TYPE,
373 class ARG1,
class ARG2,
class ARG3,
class ARG4,
374 class ARG5,
class ARG6,
class ARG7>
375 static void construct(TARGET_TYPE *address,
384 template <
class TARGET_TYPE,
385 class ARG1,
class ARG2,
class ARG3,
class ARG4,
386 class ARG5,
class ARG6,
class ARG7,
class ARG8>
387 static void construct(TARGET_TYPE *address,
397 template <
class TARGET_TYPE,
398 class ARG1,
class ARG2,
class ARG3,
class ARG4,
399 class ARG5,
class ARG6,
class ARG7,
class ARG8>
400 static void construct(TARGET_TYPE *address,
410 template <
class TARGET_TYPE,
411 class ARG1,
class ARG2,
class ARG3,
class ARG4,
412 class ARG5,
class ARG6,
class ARG7,
class ARG8,
414 static void construct(TARGET_TYPE *address,
425 template <
class TARGET_TYPE,
426 class ARG1,
class ARG2,
class ARG3,
class ARG4,
427 class ARG5,
class ARG6,
class ARG7,
class ARG8,
429 static void construct(TARGET_TYPE *address,
440 template <
class TARGET_TYPE,
441 class ARG1,
class ARG2,
class ARG3,
class ARG4,
442 class ARG5,
class ARG6,
class ARG7,
class ARG8,
443 class ARG9,
class ARG10>
444 static void construct(TARGET_TYPE *address,
456 template <
class TARGET_TYPE,
457 class ARG1,
class ARG2,
class ARG3,
class ARG4,
458 class ARG5,
class ARG6,
class ARG7,
class ARG8,
459 class ARG9,
class ARG10>
460 static void construct(TARGET_TYPE *address,
472 template <
class TARGET_TYPE,
473 class ARG1,
class ARG2,
class ARG3,
class ARG4,
474 class ARG5,
class ARG6,
class ARG7,
class ARG8,
475 class ARG9,
class ARG10,
class ARG11>
476 static void construct(TARGET_TYPE *address,
489 template <
class TARGET_TYPE,
490 class ARG1,
class ARG2,
class ARG3,
class ARG4,
491 class ARG5,
class ARG6,
class ARG7,
class ARG8,
492 class ARG9,
class ARG10,
class ARG11>
493 static void construct(TARGET_TYPE *address,
506 template <
class TARGET_TYPE,
507 class ARG1,
class ARG2,
class ARG3,
class ARG4,
508 class ARG5,
class ARG6,
class ARG7,
class ARG8,
509 class ARG9,
class ARG10,
class ARG11,
class ARG12>
510 static void construct(TARGET_TYPE *address,
524 template <
class TARGET_TYPE,
525 class ARG1,
class ARG2,
class ARG3,
class ARG4,
526 class ARG5,
class ARG6,
class ARG7,
class ARG8,
527 class ARG9,
class ARG10,
class ARG11,
class ARG12>
528 static void construct(TARGET_TYPE *address,
542 template <
class TARGET_TYPE,
543 class ARG1,
class ARG2,
class ARG3,
class ARG4,
544 class ARG5,
class ARG6,
class ARG7,
class ARG8,
545 class ARG9,
class ARG10,
class ARG11,
class ARG12,
547 static void construct(TARGET_TYPE *address,
562 template <
class TARGET_TYPE,
563 class ARG1,
class ARG2,
class ARG3,
class ARG4,
564 class ARG5,
class ARG6,
class ARG7,
class ARG8,
565 class ARG9,
class ARG10,
class ARG11,
class ARG12,
567 static void construct(TARGET_TYPE *address,
582 template <
class TARGET_TYPE,
583 class ARG1,
class ARG2,
class ARG3,
class ARG4,
584 class ARG5,
class ARG6,
class ARG7,
class ARG8,
585 class ARG9,
class ARG10,
class ARG11,
class ARG12,
586 class ARG13,
class ARG14>
587 static void construct(TARGET_TYPE *address,
603 template <
class TARGET_TYPE,
604 class ARG1,
class ARG2,
class ARG3,
class ARG4,
605 class ARG5,
class ARG6,
class ARG7,
class ARG8,
606 class ARG9,
class ARG10,
class ARG11,
class ARG12,
607 class ARG13,
class ARG14>
608 static void construct(TARGET_TYPE *address,
625#ifndef BDE_OMIT_INTERNAL_DEPRECATED
635 template <
class TARGET_TYPE>
636 static void destruct(TARGET_TYPE *
object,
647 template <
class TARGET_TYPE>
648 static void destruct(TARGET_TYPE *
object);
657 template <
class LHS_TYPE,
class RHS_TYPE>
658 static void swap(LHS_TYPE& lhs, RHS_TYPE& rhs);
691 template <
class TARGET_TYPE>
692 static TARGET_TYPE *
unconst(
const TARGET_TYPE *pointer);
701 template <
class TARGET_TYPE>
703 TARGET_TYPE *address,
706 template <
class TARGET_TYPE>
708 TARGET_TYPE *address,
711 template <
class TARGET_TYPE>
713 TARGET_TYPE *address,
716 template <
class TARGET_TYPE>
726 template <
class TARGET_TYPE>
728 TARGET_TYPE *address,
730 template <
class TARGET_TYPE>
742 template <
class TARGET_TYPE>
744 TARGET_TYPE *address,
745 const TARGET_TYPE& original,
748 template <
class TARGET_TYPE>
750 TARGET_TYPE *address,
751 const TARGET_TYPE& original,
754 template <
class TARGET_TYPE>
756 TARGET_TYPE *address,
757 const TARGET_TYPE& original,
760 template <
class TARGET_TYPE>
762 const TARGET_TYPE& original,
774 template <
class TARGET_TYPE>
776 TARGET_TYPE *address,
777 const TARGET_TYPE& original,
779 template <
class TARGET_TYPE>
781 const TARGET_TYPE& original,
795 template <
class TARGET_TYPE>
797 TARGET_TYPE *address,
798 TARGET_TYPE& original,
801 template <
class TARGET_TYPE>
803 TARGET_TYPE *address,
804 TARGET_TYPE& original,
807 template <
class TARGET_TYPE>
809 TARGET_TYPE *address,
810 TARGET_TYPE& original,
813 template <
class TARGET_TYPE>
815 TARGET_TYPE& original,
828 template <
class TARGET_TYPE>
830 TARGET_TYPE *address,
831 TARGET_TYPE& original,
833 template <
class TARGET_TYPE>
835 TARGET_TYPE& original,
845 template <
class TARGET_TYPE,
class ALLOCATOR>
847 TARGET_TYPE *address,
848 TARGET_TYPE *original,
849 ALLOCATOR *allocator,
851 template <
class TARGET_TYPE,
class ALLOCATOR>
853 TARGET_TYPE *original,
854 ALLOCATOR *allocator,
864 template <
class TARGET_TYPE,
class ARG1>
866 TARGET_TYPE *address,
879 template <
class TARGET_TYPE>
881 TARGET_TYPE *address,
884 template <
class TARGET_TYPE,
class ARG1>
886 TARGET_TYPE *address,
890 template <
class TARGET_TYPE,
class ARG1,
class ARG2>
892 TARGET_TYPE *address,
897 template <
class TARGET_TYPE,
898 class ARG1,
class ARG2,
class ARG3>
900 TARGET_TYPE *address,
906 template <
class TARGET_TYPE,
907 class ARG1,
class ARG2,
class ARG3,
class ARG4>
909 TARGET_TYPE *address,
916 template <
class TARGET_TYPE,
917 class ARG1,
class ARG2,
class ARG3,
class ARG4,
920 TARGET_TYPE *address,
928 template <
class TARGET_TYPE,
929 class ARG1,
class ARG2,
class ARG3,
class ARG4,
930 class ARG5,
class ARG6>
932 TARGET_TYPE *address,
941 template <
class TARGET_TYPE,
942 class ARG1,
class ARG2,
class ARG3,
class ARG4,
943 class ARG5,
class ARG6,
class ARG7>
945 TARGET_TYPE *address,
955 template <
class TARGET_TYPE,
956 class ARG1,
class ARG2,
class ARG3,
class ARG4,
957 class ARG5,
class ARG6,
class ARG7,
class ARG8>
959 TARGET_TYPE *address,
970 template <
class TARGET_TYPE,
971 class ARG1,
class ARG2,
class ARG3,
class ARG4,
972 class ARG5,
class ARG6,
class ARG7,
class ARG8,
975 TARGET_TYPE *address,
987 template <
class TARGET_TYPE,
988 class ARG1,
class ARG2,
class ARG3,
class ARG4,
989 class ARG5,
class ARG6,
class ARG7,
class ARG8,
990 class ARG9,
class ARG10>
992 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,
class ARG11>
1010 TARGET_TYPE *address,
1024 template <
class TARGET_TYPE,
1025 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1026 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1027 class ARG9,
class ARG10,
class ARG11,
class ARG12>
1029 TARGET_TYPE *address,
1044 template <
class TARGET_TYPE,
1045 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1046 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1047 class ARG9,
class ARG10,
class ARG11,
class ARG12,
1050 TARGET_TYPE *address,
1066 template <
class TARGET_TYPE,
1067 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1068 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1069 class ARG9,
class ARG10,
class ARG11,
class ARG12,
1070 class ARG13,
class ARG14>
1072 TARGET_TYPE *address,
1098 template <
class TARGET_TYPE>
1100 TARGET_TYPE *address,
1103 template <
class TARGET_TYPE,
class ARG1>
1105 TARGET_TYPE *address,
1109 template <
class TARGET_TYPE,
class ARG1,
class ARG2>
1111 TARGET_TYPE *address,
1116 template <
class TARGET_TYPE,
1117 class ARG1,
class ARG2,
class ARG3>
1119 TARGET_TYPE *address,
1125 template <
class TARGET_TYPE,
1126 class ARG1,
class ARG2,
class ARG3,
class ARG4>
1128 TARGET_TYPE *address,
1135 template <
class TARGET_TYPE,
1136 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1139 TARGET_TYPE *address,
1147 template <
class TARGET_TYPE,
1148 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1149 class ARG5,
class ARG6>
1151 TARGET_TYPE *address,
1160 template <
class TARGET_TYPE,
1161 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1162 class ARG5,
class ARG6,
class ARG7>
1164 TARGET_TYPE *address,
1174 template <
class TARGET_TYPE,
1175 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1176 class ARG5,
class ARG6,
class ARG7,
class ARG8>
1178 TARGET_TYPE *address,
1189 template <
class TARGET_TYPE,
1190 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1191 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1194 TARGET_TYPE *address,
1206 template <
class TARGET_TYPE,
1207 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1208 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1209 class ARG9,
class ARG10>
1211 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,
class ARG11>
1229 TARGET_TYPE *address,
1243 template <
class TARGET_TYPE,
1244 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1245 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1246 class ARG9,
class ARG10,
class ARG11,
class ARG12>
1248 TARGET_TYPE *address,
1263 template <
class TARGET_TYPE,
1264 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1265 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1266 class ARG9,
class ARG10,
class ARG11,
class ARG12,
1269 TARGET_TYPE *address,
1285 template <
class TARGET_TYPE,
1286 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1287 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1288 class ARG9,
class ARG10,
class ARG11,
class ARG12,
1289 class ARG13,
class ARG14>
1291 TARGET_TYPE *address,
1317 template <
class TARGET_TYPE>
1318 static void construct(TARGET_TYPE *address,
1321 template <
class TARGET_TYPE,
class ARG1>
1322 static void construct(TARGET_TYPE *address,
1326 template <
class TARGET_TYPE,
class ARG1,
class ARG2>
1327 static void construct(TARGET_TYPE *address,
1332 template <
class TARGET_TYPE,
1333 class ARG1,
class ARG2,
class ARG3>
1334 static void construct(TARGET_TYPE *address,
1340 template <
class TARGET_TYPE,
1341 class ARG1,
class ARG2,
class ARG3,
class ARG4>
1342 static void construct(TARGET_TYPE *address,
1349 template <
class TARGET_TYPE,
1350 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1352 static void construct(TARGET_TYPE *address,
1360 template <
class TARGET_TYPE,
1361 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1362 class ARG5,
class ARG6>
1363 static void construct(TARGET_TYPE *address,
1372 template <
class TARGET_TYPE,
1373 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1374 class ARG5,
class ARG6,
class ARG7>
1375 static void construct(TARGET_TYPE *address,
1385 template <
class TARGET_TYPE,
1386 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1387 class ARG5,
class ARG6,
class ARG7,
class ARG8>
1388 static void construct(TARGET_TYPE *address,
1399 template <
class TARGET_TYPE,
1400 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1401 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1403 static void construct(TARGET_TYPE *address,
1415 template <
class TARGET_TYPE,
1416 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1417 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1418 class ARG9,
class ARG10>
1419 static void construct(TARGET_TYPE *address,
1432 template <
class TARGET_TYPE,
1433 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1434 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1435 class ARG9,
class ARG10,
class ARG11>
1436 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,
class ARG12>
1454 static void construct(TARGET_TYPE *address,
1469 template <
class TARGET_TYPE,
1470 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1471 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1472 class ARG9,
class ARG10,
class ARG11,
class ARG12,
1474 static void construct(TARGET_TYPE *address,
1490 template <
class TARGET_TYPE,
1491 class ARG1,
class ARG2,
class ARG3,
class ARG4,
1492 class ARG5,
class ARG6,
class ARG7,
class ARG8,
1493 class ARG9,
class ARG10,
class ARG11,
class ARG12,
1494 class ARG13,
class ARG14>
1495 static void construct(TARGET_TYPE *address,
1520 template <
class LHS_TYPE,
class RHS_TYPE>
1521 static void swap(LHS_TYPE& lhs,
1524 template <
class LHS_TYPE,
class RHS_TYPE>
1525 static void swap(LHS_TYPE& lhs,
1543#if defined(BSLS_PLATFORM_CMP_IBM) && BSLS_PLATFORM_CMP_VERSION < 0x0d01
1544 #define BSLALG_SCALARPRIMITIVES_XLC_PLACEMENT_NEW_FIX \
1545 BSLS_PERFORMANCEHINT_OPTIMIZATION_FENCE
1547 #define BSLALG_SCALARPRIMITIVES_XLC_PLACEMENT_NEW_FIX
1556template <
class TARGET_TYPE>
1578template <
class TARGET_TYPE>
1596template <
class TARGET_TYPE>
1600 const TARGET_TYPE& original,
1618template <
class TARGET_TYPE>
1622 const TARGET_TYPE& original,
1639template <
class TARGET_TYPE>
1643 TARGET_TYPE& original,
1661template <
class TARGET_TYPE>
1665 TARGET_TYPE& original,
1682template <
class TARGET_TYPE,
class ALLOCATOR>
1686 TARGET_TYPE *original,
1687 ALLOCATOR *allocator)
1705template <
class TARGET_TYPE>
1724template <
class TARGET_TYPE>
1732 ::new (address) TARGET_TYPE();
1736template <
class TARGET_TYPE,
class ARG1>
1759template <
class TARGET_TYPE,
class ARG1>
1768 ::new (address) TARGET_TYPE(a1);
1772template <
class TARGET_TYPE,
class ARG1,
class ARG2>
1793template <
class TARGET_TYPE,
class ARG1,
class ARG2>
1803 ::new (address) TARGET_TYPE(a1, a2);
1807template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3>
1831template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3>
1842 ::new (address) TARGET_TYPE(a1, a2, a3);
1846template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
1872template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
1885 ::new (address) TARGET_TYPE(a1, a2, a3, a4);
1889template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
1890 class ARG4,
class ARG5>
1916template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
1917 class ARG4,
class ARG5>
1930 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5);
1934template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
1935 class ARG4,
class ARG5,
class ARG6>
1957 a1, a2, a3, a4, a5, a6,
1962template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
1963 class ARG4,
class ARG5,
class ARG6>
1977 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6);
1981template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
1982 class ARG4,
class ARG5,
class ARG6,
class ARG7>
2005 a1, a2, a3, a4, a5, a6, a7,
2010template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2011 class ARG4,
class ARG5,
class ARG6,
class ARG7>
2026 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7);
2030template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2031 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2056 a1, a2, a3, a4, a5, a6, a7, a8,
2061template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2062 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2079 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8);
2083template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2084 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2085 class ARG8,
class ARG9>
2110 a1, a2, a3, a4, a5, a6, a7, a8, a9,
2115template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2116 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2117 class ARG8,
class ARG9>
2134 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9);
2138template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2139 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2140 class ARG8,
class ARG9,
class ARG10>
2166 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
2171template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2172 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2173 class ARG8,
class ARG9,
class ARG10>
2191 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
2195template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2196 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2197 class ARG8,
class ARG9,
class ARG10,
class ARG11>
2224 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11,
2229template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2230 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2231 class ARG8,
class ARG9,
class ARG10,
class ARG11>
2250 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
2254template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2255 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2256 class ARG8,
class ARG9,
class ARG10,
class ARG11,
2285 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12,
2290template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2291 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2292 class ARG8,
class ARG9,
class ARG10,
class ARG11,
2313 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9,
2318template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2319 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2320 class ARG8,
class ARG9,
class ARG10,
class ARG11,
2321 class ARG12,
class ARG13>
2350 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13,
2355template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2356 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2357 class ARG8,
class ARG9,
class ARG10,
class ARG11,
2358 class ARG12,
class ARG13>
2379 ::new (address) TARGET_TYPE(
2380 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
2384template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2385 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2386 class ARG8,
class ARG9,
class ARG10,
class ARG11,
2387 class ARG12,
class ARG13,
class ARG14>
2417 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
2422template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
2423 class ARG4,
class ARG5,
class ARG6,
class ARG7,
2424 class ARG8,
class ARG9,
class ARG10,
class ARG11,
2425 class ARG12,
class ARG13,
class ARG14>
2447 ::new (address) TARGET_TYPE(
2448 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
2456#ifndef BDE_OMIT_INTERNAL_DEPRECATED
2460template <
class TARGET_TYPE>
2464 bslma::DestructionUtil::destroy(address);
2467template <
class TARGET_TYPE>
2471 bslma::DestructionUtil::destroy(address);
2482template <
class LHS_TYPE,
class RHS_TYPE>
2499template <
class TARGET_TYPE>
2503 return const_cast<TARGET_TYPE *
>(pointer);
2508template <
class TARGET_TYPE>
2512 TARGET_TYPE *address,
2516 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator);
2520template <
class TARGET_TYPE>
2524 TARGET_TYPE *address,
2528 ::new (address) TARGET_TYPE(allocator);
2532template <
class TARGET_TYPE>
2536 TARGET_TYPE *address,
2545template <
class TARGET_TYPE>
2549 TARGET_TYPE *address,
2553 ::new (address) TARGET_TYPE();
2557template <
class TARGET_TYPE>
2561 TARGET_TYPE *address,
2570 ::new (address) TARGET_TYPE();
2573 memset(
reinterpret_cast<char *
>(address), 0,
sizeof *address);
2577template <
class TARGET_TYPE>
2581 TARGET_TYPE *address,
2584 ::new (address) TARGET_TYPE();
2590template <
class TARGET_TYPE>
2594 TARGET_TYPE *address,
2595 const TARGET_TYPE& original,
2599 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, original);
2603template <
class TARGET_TYPE>
2607 TARGET_TYPE *address,
2608 const TARGET_TYPE& original,
2612 ::new (address) TARGET_TYPE(original, allocator);
2616template <
class TARGET_TYPE>
2620 TARGET_TYPE *address,
2621 const TARGET_TYPE& original,
2633 ::new (address) TARGET_TYPE(original);
2636#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2637#pragma GCC diagnostic push
2638#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
2640 memcpy((
void *)address,
2643#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2644#pragma GCC diagnostic pop
2649template <
class TARGET_TYPE>
2653 TARGET_TYPE *address,
2654 const TARGET_TYPE& original,
2658 ::new (address) TARGET_TYPE(original);
2662template <
class TARGET_TYPE>
2666 TARGET_TYPE *address,
2667 const TARGET_TYPE& original,
2678 ::new (address) TARGET_TYPE(original);
2681#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2682#pragma GCC diagnostic push
2683#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
2685 memcpy((
void *)address,
2688#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2689#pragma GCC diagnostic pop
2694template <
class TARGET_TYPE>
2698 TARGET_TYPE *address,
2699 const TARGET_TYPE& original,
2702 ::new (address) TARGET_TYPE(original);
2708template <
class TARGET_TYPE>
2712 TARGET_TYPE *address,
2713 TARGET_TYPE& original,
2717 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator,
2721template <
class TARGET_TYPE>
2725 TARGET_TYPE *address,
2726 TARGET_TYPE& original,
2734template <
class TARGET_TYPE>
2738 TARGET_TYPE *address,
2739 TARGET_TYPE& original,
2751 ::new (address) TARGET_TYPE(original);
2753#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2754#pragma GCC diagnostic push
2755#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
2758#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2759#pragma GCC diagnostic pop
2764template <
class TARGET_TYPE>
2768 TARGET_TYPE *address,
2769 TARGET_TYPE& original,
2776template <
class TARGET_TYPE>
2780 TARGET_TYPE *address,
2781 TARGET_TYPE& original,
2792 ::new (address) TARGET_TYPE(original);
2794#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2795#pragma GCC diagnostic push
2796#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
2798 memcpy((
void *)address,
2801#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2802#pragma GCC diagnostic pop
2807template <
class TARGET_TYPE>
2811 TARGET_TYPE *address,
2812 TARGET_TYPE& original,
2820template <
class TARGET_TYPE,
class ALLOCATOR>
2824 TARGET_TYPE *address,
2825 TARGET_TYPE *original,
2837 ::new (address) TARGET_TYPE(*original);
2840#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2841#pragma GCC diagnostic push
2842#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
2844 memcpy((
void *)address, original,
sizeof *original);
2845#if defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VERSION >= 50000
2846#pragma GCC diagnostic pop
2851template <
class TARGET_TYPE,
class ALLOCATOR>
2855 TARGET_TYPE *address,
2856 TARGET_TYPE *original,
2857 ALLOCATOR *allocator,
2861 bslma::DestructionUtil::destroy(original);
2866template <
class TARGET_TYPE,
class ARG1>
2870 TARGET_TYPE *address,
2883 ::new (address) TARGET_TYPE(a1);
2892template <
class TARGET_TYPE>
2896 TARGET_TYPE *address,
2900 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator);
2904template <
class TARGET_TYPE>
2908 TARGET_TYPE *address,
2912 ::new (address) TARGET_TYPE(allocator);
2916template <
class TARGET_TYPE>
2923 ::new (address) TARGET_TYPE();
2927template <
class TARGET_TYPE,
class ARG1>
2931 TARGET_TYPE *address,
2936 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1);
2940template <
class TARGET_TYPE,
class ARG1>
2944 TARGET_TYPE *address,
2949 ::new (address) TARGET_TYPE(a1, allocator);
2953template <
class TARGET_TYPE,
class ARG1>
2961 ::new (address) TARGET_TYPE(a1);
2965template <
class TARGET_TYPE,
class ARG1,
class ARG2>
2969 TARGET_TYPE *address,
2975 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2);
2979template <
class TARGET_TYPE,
class ARG1,
class ARG2>
2983 TARGET_TYPE *address,
2989 ::new (address) TARGET_TYPE(a1, a2, allocator);
2993template <
class TARGET_TYPE,
class ARG1,
class ARG2>
3002 ::new (address) TARGET_TYPE(a1, a2);
3006template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3>
3010 TARGET_TYPE *address,
3017 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3);
3021template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3>
3025 TARGET_TYPE *address,
3032 ::new (address) TARGET_TYPE(a1, a2, a3, allocator);
3036template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3>
3046 ::new (address) TARGET_TYPE(a1, a2, a3);
3050template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3055 TARGET_TYPE *address,
3063 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4);
3067template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3072 TARGET_TYPE *address,
3080 ::new (address) TARGET_TYPE(a1, a2, a3, a4, allocator);
3084template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3096 ::new (address) TARGET_TYPE(a1, a2, a3, a4);
3100template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3101 class ARG4,
class ARG5>
3105 TARGET_TYPE *address,
3114 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3119template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3120 class ARG4,
class ARG5>
3124 TARGET_TYPE *address,
3133 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, allocator);
3137template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3138 class ARG4,
class ARG5>
3150 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5);
3154template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3155 class ARG4,
class ARG5,
class ARG6>
3159 TARGET_TYPE *address,
3169 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3174template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3175 class ARG4,
class ARG5,
class ARG6>
3179 TARGET_TYPE *address,
3189 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, allocator);
3193template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3194 class ARG4,
class ARG5,
class ARG6>
3207 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6);
3211template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3212 class ARG4,
class ARG5,
class ARG6,
class ARG7>
3216 TARGET_TYPE *address,
3227 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3232template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3233 class ARG4,
class ARG5,
class ARG6,
class ARG7>
3237 TARGET_TYPE *address,
3248 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, allocator);
3252template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3253 class ARG4,
class ARG5,
class ARG6,
class ARG7>
3267 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7);
3271template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3272 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3277 TARGET_TYPE *address,
3289 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3294template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3295 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3300 TARGET_TYPE *address,
3312 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, allocator);
3316template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3317 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3333 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8);
3337template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3338 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3339 class ARG8,
class ARG9>
3343 TARGET_TYPE *address,
3356 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3357 a5, a6, a7, a8, a9);
3361template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3362 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3363 class ARG8,
class ARG9>
3367 TARGET_TYPE *address,
3380 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9, allocator);
3384template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3385 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3386 class ARG8,
class ARG9>
3402 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9);
3406template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3407 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3408 class ARG8,
class ARG9,
class ARG10>
3412 TARGET_TYPE *address,
3426 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3427 a5, a6, a7, a8, a9, a10);
3431template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3432 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3433 class ARG8,
class ARG9,
class ARG10>
3437 TARGET_TYPE *address,
3451 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
3456template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3457 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3458 class ARG8,
class ARG9,
class ARG10>
3475 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
3479template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3480 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3481 class ARG8,
class ARG9,
class ARG10,
class ARG11>
3485 TARGET_TYPE *address,
3500 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3501 a5, a6, a7, a8, a9, a10, a11);
3505template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3506 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3507 class ARG8,
class ARG9,
class ARG10,
class ARG11>
3511 TARGET_TYPE *address,
3526 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11,
3531template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3532 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3533 class ARG8,
class ARG9,
class ARG10,
class ARG11>
3551 ::new (address) TARGET_TYPE(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
3555template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3556 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3557 class ARG8,
class ARG9,
class ARG10,
class ARG11,
3562 TARGET_TYPE *address,
3578 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3579 a5, a6, a7, a8, a9, a10, a11, a12);
3583template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3584 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3585 class ARG8,
class ARG9,
class ARG10,
class ARG11,
3590 TARGET_TYPE *address,
3606 ::new (address) TARGET_TYPE(
3607 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12,
3612template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3613 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3614 class ARG8,
class ARG9,
class ARG10,
class ARG11,
3634 ::new (address) TARGET_TYPE(
3635 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
3639template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3640 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3641 class ARG8,
class ARG9,
class ARG10,
class ARG11,
3642 class ARG12,
class ARG13>
3646 TARGET_TYPE *address,
3663 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3664 a5, a6, a7, a8, a9, a10, a11, a12, a13);
3668template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3669 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3670 class ARG8,
class ARG9,
class ARG10,
class ARG11,
3671 class ARG12,
class ARG13>
3675 TARGET_TYPE *address,
3692 ::new (address) TARGET_TYPE(
3693 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13,
3698template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3699 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3700 class ARG8,
class ARG9,
class ARG10,
class ARG11,
3701 class ARG12,
class ARG13>
3721 ::new (address) TARGET_TYPE(
3722 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
3726template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3727 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3728 class ARG8,
class ARG9,
class ARG10,
class ARG11,
3729 class ARG12,
class ARG13,
class ARG14>
3733 TARGET_TYPE *address,
3751 ::new (address) TARGET_TYPE(bsl::allocator_arg, allocator, a1, a2, a3, a4,
3752 a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
3756template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3757 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3758 class ARG8,
class ARG9,
class ARG10,
class ARG11,
3759 class ARG12,
class ARG13,
class ARG14>
3763 TARGET_TYPE *address,
3781 ::new (address) TARGET_TYPE(
3782 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
3787template <
class TARGET_TYPE,
class ARG1,
class ARG2,
class ARG3,
3788 class ARG4,
class ARG5,
class ARG6,
class ARG7,
3789 class ARG8,
class ARG9,
class ARG10,
class ARG11,
3790 class ARG12,
class ARG13,
class ARG14>
3811 ::new (address) TARGET_TYPE(
3812 a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
3818template <
class LHS_TYPE,
class RHS_TYPE>
3835 char arena[
sizeof lhs];
3848template <
class LHS_TYPE,
class RHS_TYPE>
3860#ifndef BDE_OPENSOURCE_PUBLICATION
#define BSLALG_SCALARPRIMITIVES_XLC_PLACEMENT_NEW_FIX
Definition bslalg_scalarprimitives.h:1547
Definition bslma_allocator.h:457
bslalg::ScalarPrimitives bslalg_ScalarPrimitives
This alias is defined for backward compatibility.
Definition bslalg_scalarprimitives.h:3866
#define BSLMF_ASSERT(expr)
Definition bslmf_assert.h:229
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1762
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
#define BSLS_UTIL_ADDRESSOF(OBJ)
Definition bsls_util.h:289
Definition bdlc_flathashmap.h:1805
Definition bslmf_integralconstant.h:244
Definition bslmf_isfundamental.h:329
Definition bslmf_ispointer.h:138
Definition bslmf_issame.h:146
Definition bslmf_istriviallydefaultconstructible.h:293
Definition bslalg_scalarprimitives.h:670
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:2593
static void defaultConstruct(TARGET_TYPE *address, bslma::Allocator *allocator, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
Definition bslalg_scalarprimitives.h:2511
static void construct(TARGET_TYPE *address, const ARG1 &a1, bslma::Allocator *allocator, bsl::integral_constant< int, e_BITWISE_COPYABLE_TRAITS > *)
Definition bslalg_scalarprimitives.h:2869
static void swap(LHS_TYPE &lhs, RHS_TYPE &rhs, bsl::integral_constant< int, e_BITWISE_MOVEABLE_TRAITS > *)
Definition bslalg_scalarprimitives.h:3819
static TARGET_TYPE * unconst(const TARGET_TYPE *pointer)
Definition bslalg_scalarprimitives.h:2501
@ e_USES_ALLOCATOR_ARG_T_TRAITS
Definition bslalg_scalarprimitives.h:678
@ e_HAS_TRIVIAL_DEFAULT_CTOR_TRAITS
Definition bslalg_scalarprimitives.h:680
@ e_BITWISE_MOVEABLE_TRAITS
Definition bslalg_scalarprimitives.h:682
@ e_BITWISE_COPYABLE_TRAITS
Definition bslalg_scalarprimitives.h:681
@ e_USES_BSLMA_ALLOCATOR_TRAITS
Definition bslalg_scalarprimitives.h:679
@ e_NIL_TRAITS
Definition bslalg_scalarprimitives.h:683
static void destructiveMove(TARGET_TYPE *address, TARGET_TYPE *original, ALLOCATOR *allocator, bsl::integral_constant< int, e_BITWISE_MOVEABLE_TRAITS > *)
Definition bslalg_scalarprimitives.h:2823
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:2711
Definition bslalg_scalarprimitives.h:170
static void defaultConstruct(TARGET_TYPE *address, bslma::Allocator *allocator)
Definition bslalg_scalarprimitives.h:1559
static void moveConstruct(TARGET_TYPE *address, TARGET_TYPE &original, bslma::Allocator *allocator)
Definition bslalg_scalarprimitives.h:1642
static void destruct(TARGET_TYPE *object, void *allocator)
Definition bslalg_scalarprimitives.h:2462
static void destructiveMove(TARGET_TYPE *address, TARGET_TYPE *original, ALLOCATOR *allocator)
Definition bslalg_scalarprimitives.h:1685
static void copyConstruct(TARGET_TYPE *address, const TARGET_TYPE &original, bslma::Allocator *allocator)
Definition bslalg_scalarprimitives.h:1599
static void construct(TARGET_TYPE *address, bslma::Allocator *allocator)
Definition bslalg_scalarprimitives.h:1708
static void swap(LHS_TYPE &lhs, RHS_TYPE &rhs)
Definition bslalg_scalarprimitives.h:2483
Definition bslma_usesbslmaallocator.h:343
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:1060
Definition bslmf_usesallocatorargt.h:100