]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/pool/include/boost/pool/detail/pool_construct.ipp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / pool / include / boost / pool / detail / pool_construct.ipp
CommitLineData
7c673cae
FG
1// Copyright (C) 2000 Stephen Cleary
2//
3// Distributed under the Boost Software License, Version 1.0. (See accompany-
4// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5//
6// See http://www.boost.org for updates, documentation, and revision history.
7
8// This file was AUTOMATICALLY GENERATED from "stdin"
9// Do NOT include directly!
10// Do NOT edit!
11
12template <typename T0>
13element_type * construct(T0 & a0)
14{
15 element_type * const ret = (malloc)();
16 if (ret == 0)
17 return ret;
18 try { new (ret) element_type(a0); }
19 catch (...) { (free)(ret); throw; }
20 return ret;
21}
22template <typename T0>
23element_type * construct(const T0 & a0)
24{
25 element_type * const ret = (malloc)();
26 if (ret == 0)
27 return ret;
28 try { new (ret) element_type(a0); }
29 catch (...) { (free)(ret); throw; }
30 return ret;
31}
32template <typename T0>
33element_type * construct(volatile T0 & a0)
34{
35 element_type * const ret = (malloc)();
36 if (ret == 0)
37 return ret;
38 try { new (ret) element_type(a0); }
39 catch (...) { (free)(ret); throw; }
40 return ret;
41}
42template <typename T0>
43element_type * construct(const volatile T0 & a0)
44{
45 element_type * const ret = (malloc)();
46 if (ret == 0)
47 return ret;
48 try { new (ret) element_type(a0); }
49 catch (...) { (free)(ret); throw; }
50 return ret;
51}
52template <typename T0, typename T1>
53element_type * construct(T0 & a0, T1 & a1)
54{
55 element_type * const ret = (malloc)();
56 if (ret == 0)
57 return ret;
58 try { new (ret) element_type(a0, a1); }
59 catch (...) { (free)(ret); throw; }
60 return ret;
61}
62template <typename T0, typename T1>
63element_type * construct(const T0 & a0, T1 & a1)
64{
65 element_type * const ret = (malloc)();
66 if (ret == 0)
67 return ret;
68 try { new (ret) element_type(a0, a1); }
69 catch (...) { (free)(ret); throw; }
70 return ret;
71}
72template <typename T0, typename T1>
73element_type * construct(volatile T0 & a0, T1 & a1)
74{
75 element_type * const ret = (malloc)();
76 if (ret == 0)
77 return ret;
78 try { new (ret) element_type(a0, a1); }
79 catch (...) { (free)(ret); throw; }
80 return ret;
81}
82template <typename T0, typename T1>
83element_type * construct(const volatile T0 & a0, T1 & a1)
84{
85 element_type * const ret = (malloc)();
86 if (ret == 0)
87 return ret;
88 try { new (ret) element_type(a0, a1); }
89 catch (...) { (free)(ret); throw; }
90 return ret;
91}
92template <typename T0, typename T1>
93element_type * construct(T0 & a0, const T1 & a1)
94{
95 element_type * const ret = (malloc)();
96 if (ret == 0)
97 return ret;
98 try { new (ret) element_type(a0, a1); }
99 catch (...) { (free)(ret); throw; }
100 return ret;
101}
102template <typename T0, typename T1>
103element_type * construct(const T0 & a0, const T1 & a1)
104{
105 element_type * const ret = (malloc)();
106 if (ret == 0)
107 return ret;
108 try { new (ret) element_type(a0, a1); }
109 catch (...) { (free)(ret); throw; }
110 return ret;
111}
112template <typename T0, typename T1>
113element_type * construct(volatile T0 & a0, const T1 & a1)
114{
115 element_type * const ret = (malloc)();
116 if (ret == 0)
117 return ret;
118 try { new (ret) element_type(a0, a1); }
119 catch (...) { (free)(ret); throw; }
120 return ret;
121}
122template <typename T0, typename T1>
123element_type * construct(const volatile T0 & a0, const T1 & a1)
124{
125 element_type * const ret = (malloc)();
126 if (ret == 0)
127 return ret;
128 try { new (ret) element_type(a0, a1); }
129 catch (...) { (free)(ret); throw; }
130 return ret;
131}
132template <typename T0, typename T1>
133element_type * construct(T0 & a0, volatile T1 & a1)
134{
135 element_type * const ret = (malloc)();
136 if (ret == 0)
137 return ret;
138 try { new (ret) element_type(a0, a1); }
139 catch (...) { (free)(ret); throw; }
140 return ret;
141}
142template <typename T0, typename T1>
143element_type * construct(const T0 & a0, volatile T1 & a1)
144{
145 element_type * const ret = (malloc)();
146 if (ret == 0)
147 return ret;
148 try { new (ret) element_type(a0, a1); }
149 catch (...) { (free)(ret); throw; }
150 return ret;
151}
152template <typename T0, typename T1>
153element_type * construct(volatile T0 & a0, volatile T1 & a1)
154{
155 element_type * const ret = (malloc)();
156 if (ret == 0)
157 return ret;
158 try { new (ret) element_type(a0, a1); }
159 catch (...) { (free)(ret); throw; }
160 return ret;
161}
162template <typename T0, typename T1>
163element_type * construct(const volatile T0 & a0, volatile T1 & a1)
164{
165 element_type * const ret = (malloc)();
166 if (ret == 0)
167 return ret;
168 try { new (ret) element_type(a0, a1); }
169 catch (...) { (free)(ret); throw; }
170 return ret;
171}
172template <typename T0, typename T1>
173element_type * construct(T0 & a0, const volatile T1 & a1)
174{
175 element_type * const ret = (malloc)();
176 if (ret == 0)
177 return ret;
178 try { new (ret) element_type(a0, a1); }
179 catch (...) { (free)(ret); throw; }
180 return ret;
181}
182template <typename T0, typename T1>
183element_type * construct(const T0 & a0, const volatile T1 & a1)
184{
185 element_type * const ret = (malloc)();
186 if (ret == 0)
187 return ret;
188 try { new (ret) element_type(a0, a1); }
189 catch (...) { (free)(ret); throw; }
190 return ret;
191}
192template <typename T0, typename T1>
193element_type * construct(volatile T0 & a0, const volatile T1 & a1)
194{
195 element_type * const ret = (malloc)();
196 if (ret == 0)
197 return ret;
198 try { new (ret) element_type(a0, a1); }
199 catch (...) { (free)(ret); throw; }
200 return ret;
201}
202template <typename T0, typename T1>
203element_type * construct(const volatile T0 & a0, const volatile T1 & a1)
204{
205 element_type * const ret = (malloc)();
206 if (ret == 0)
207 return ret;
208 try { new (ret) element_type(a0, a1); }
209 catch (...) { (free)(ret); throw; }
210 return ret;
211}
212template <typename T0, typename T1, typename T2>
213element_type * construct(T0 & a0, T1 & a1, T2 & a2)
214{
215 element_type * const ret = (malloc)();
216 if (ret == 0)
217 return ret;
218 try { new (ret) element_type(a0, a1, a2); }
219 catch (...) { (free)(ret); throw; }
220 return ret;
221}
222template <typename T0, typename T1, typename T2>
223element_type * construct(const T0 & a0, T1 & a1, T2 & a2)
224{
225 element_type * const ret = (malloc)();
226 if (ret == 0)
227 return ret;
228 try { new (ret) element_type(a0, a1, a2); }
229 catch (...) { (free)(ret); throw; }
230 return ret;
231}
232template <typename T0, typename T1, typename T2>
233element_type * construct(volatile T0 & a0, T1 & a1, T2 & a2)
234{
235 element_type * const ret = (malloc)();
236 if (ret == 0)
237 return ret;
238 try { new (ret) element_type(a0, a1, a2); }
239 catch (...) { (free)(ret); throw; }
240 return ret;
241}
242template <typename T0, typename T1, typename T2>
243element_type * construct(const volatile T0 & a0, T1 & a1, T2 & a2)
244{
245 element_type * const ret = (malloc)();
246 if (ret == 0)
247 return ret;
248 try { new (ret) element_type(a0, a1, a2); }
249 catch (...) { (free)(ret); throw; }
250 return ret;
251}
252template <typename T0, typename T1, typename T2>
253element_type * construct(T0 & a0, const T1 & a1, T2 & a2)
254{
255 element_type * const ret = (malloc)();
256 if (ret == 0)
257 return ret;
258 try { new (ret) element_type(a0, a1, a2); }
259 catch (...) { (free)(ret); throw; }
260 return ret;
261}
262template <typename T0, typename T1, typename T2>
263element_type * construct(const T0 & a0, const T1 & a1, T2 & a2)
264{
265 element_type * const ret = (malloc)();
266 if (ret == 0)
267 return ret;
268 try { new (ret) element_type(a0, a1, a2); }
269 catch (...) { (free)(ret); throw; }
270 return ret;
271}
272template <typename T0, typename T1, typename T2>
273element_type * construct(volatile T0 & a0, const T1 & a1, T2 & a2)
274{
275 element_type * const ret = (malloc)();
276 if (ret == 0)
277 return ret;
278 try { new (ret) element_type(a0, a1, a2); }
279 catch (...) { (free)(ret); throw; }
280 return ret;
281}
282template <typename T0, typename T1, typename T2>
283element_type * construct(const volatile T0 & a0, const T1 & a1, T2 & a2)
284{
285 element_type * const ret = (malloc)();
286 if (ret == 0)
287 return ret;
288 try { new (ret) element_type(a0, a1, a2); }
289 catch (...) { (free)(ret); throw; }
290 return ret;
291}
292template <typename T0, typename T1, typename T2>
293element_type * construct(T0 & a0, volatile T1 & a1, T2 & a2)
294{
295 element_type * const ret = (malloc)();
296 if (ret == 0)
297 return ret;
298 try { new (ret) element_type(a0, a1, a2); }
299 catch (...) { (free)(ret); throw; }
300 return ret;
301}
302template <typename T0, typename T1, typename T2>
303element_type * construct(const T0 & a0, volatile T1 & a1, T2 & a2)
304{
305 element_type * const ret = (malloc)();
306 if (ret == 0)
307 return ret;
308 try { new (ret) element_type(a0, a1, a2); }
309 catch (...) { (free)(ret); throw; }
310 return ret;
311}
312template <typename T0, typename T1, typename T2>
313element_type * construct(volatile T0 & a0, volatile T1 & a1, T2 & a2)
314{
315 element_type * const ret = (malloc)();
316 if (ret == 0)
317 return ret;
318 try { new (ret) element_type(a0, a1, a2); }
319 catch (...) { (free)(ret); throw; }
320 return ret;
321}
322template <typename T0, typename T1, typename T2>
323element_type * construct(const volatile T0 & a0, volatile T1 & a1, T2 & a2)
324{
325 element_type * const ret = (malloc)();
326 if (ret == 0)
327 return ret;
328 try { new (ret) element_type(a0, a1, a2); }
329 catch (...) { (free)(ret); throw; }
330 return ret;
331}
332template <typename T0, typename T1, typename T2>
333element_type * construct(T0 & a0, const volatile T1 & a1, T2 & a2)
334{
335 element_type * const ret = (malloc)();
336 if (ret == 0)
337 return ret;
338 try { new (ret) element_type(a0, a1, a2); }
339 catch (...) { (free)(ret); throw; }
340 return ret;
341}
342template <typename T0, typename T1, typename T2>
343element_type * construct(const T0 & a0, const volatile T1 & a1, T2 & a2)
344{
345 element_type * const ret = (malloc)();
346 if (ret == 0)
347 return ret;
348 try { new (ret) element_type(a0, a1, a2); }
349 catch (...) { (free)(ret); throw; }
350 return ret;
351}
352template <typename T0, typename T1, typename T2>
353element_type * construct(volatile T0 & a0, const volatile T1 & a1, T2 & a2)
354{
355 element_type * const ret = (malloc)();
356 if (ret == 0)
357 return ret;
358 try { new (ret) element_type(a0, a1, a2); }
359 catch (...) { (free)(ret); throw; }
360 return ret;
361}
362template <typename T0, typename T1, typename T2>
363element_type * construct(const volatile T0 & a0, const volatile T1 & a1, T2 & a2)
364{
365 element_type * const ret = (malloc)();
366 if (ret == 0)
367 return ret;
368 try { new (ret) element_type(a0, a1, a2); }
369 catch (...) { (free)(ret); throw; }
370 return ret;
371}
372template <typename T0, typename T1, typename T2>
373element_type * construct(T0 & a0, T1 & a1, const T2 & a2)
374{
375 element_type * const ret = (malloc)();
376 if (ret == 0)
377 return ret;
378 try { new (ret) element_type(a0, a1, a2); }
379 catch (...) { (free)(ret); throw; }
380 return ret;
381}
382template <typename T0, typename T1, typename T2>
383element_type * construct(const T0 & a0, T1 & a1, const T2 & a2)
384{
385 element_type * const ret = (malloc)();
386 if (ret == 0)
387 return ret;
388 try { new (ret) element_type(a0, a1, a2); }
389 catch (...) { (free)(ret); throw; }
390 return ret;
391}
392template <typename T0, typename T1, typename T2>
393element_type * construct(volatile T0 & a0, T1 & a1, const T2 & a2)
394{
395 element_type * const ret = (malloc)();
396 if (ret == 0)
397 return ret;
398 try { new (ret) element_type(a0, a1, a2); }
399 catch (...) { (free)(ret); throw; }
400 return ret;
401}
402template <typename T0, typename T1, typename T2>
403element_type * construct(const volatile T0 & a0, T1 & a1, const T2 & a2)
404{
405 element_type * const ret = (malloc)();
406 if (ret == 0)
407 return ret;
408 try { new (ret) element_type(a0, a1, a2); }
409 catch (...) { (free)(ret); throw; }
410 return ret;
411}
412template <typename T0, typename T1, typename T2>
413element_type * construct(T0 & a0, const T1 & a1, const T2 & a2)
414{
415 element_type * const ret = (malloc)();
416 if (ret == 0)
417 return ret;
418 try { new (ret) element_type(a0, a1, a2); }
419 catch (...) { (free)(ret); throw; }
420 return ret;
421}
422template <typename T0, typename T1, typename T2>
423element_type * construct(const T0 & a0, const T1 & a1, const T2 & a2)
424{
425 element_type * const ret = (malloc)();
426 if (ret == 0)
427 return ret;
428 try { new (ret) element_type(a0, a1, a2); }
429 catch (...) { (free)(ret); throw; }
430 return ret;
431}
432template <typename T0, typename T1, typename T2>
433element_type * construct(volatile T0 & a0, const T1 & a1, const T2 & a2)
434{
435 element_type * const ret = (malloc)();
436 if (ret == 0)
437 return ret;
438 try { new (ret) element_type(a0, a1, a2); }
439 catch (...) { (free)(ret); throw; }
440 return ret;
441}
442template <typename T0, typename T1, typename T2>
443element_type * construct(const volatile T0 & a0, const T1 & a1, const T2 & a2)
444{
445 element_type * const ret = (malloc)();
446 if (ret == 0)
447 return ret;
448 try { new (ret) element_type(a0, a1, a2); }
449 catch (...) { (free)(ret); throw; }
450 return ret;
451}
452template <typename T0, typename T1, typename T2>
453element_type * construct(T0 & a0, volatile T1 & a1, const T2 & a2)
454{
455 element_type * const ret = (malloc)();
456 if (ret == 0)
457 return ret;
458 try { new (ret) element_type(a0, a1, a2); }
459 catch (...) { (free)(ret); throw; }
460 return ret;
461}
462template <typename T0, typename T1, typename T2>
463element_type * construct(const T0 & a0, volatile T1 & a1, const T2 & a2)
464{
465 element_type * const ret = (malloc)();
466 if (ret == 0)
467 return ret;
468 try { new (ret) element_type(a0, a1, a2); }
469 catch (...) { (free)(ret); throw; }
470 return ret;
471}
472template <typename T0, typename T1, typename T2>
473element_type * construct(volatile T0 & a0, volatile T1 & a1, const T2 & a2)
474{
475 element_type * const ret = (malloc)();
476 if (ret == 0)
477 return ret;
478 try { new (ret) element_type(a0, a1, a2); }
479 catch (...) { (free)(ret); throw; }
480 return ret;
481}
482template <typename T0, typename T1, typename T2>
483element_type * construct(const volatile T0 & a0, volatile T1 & a1, const T2 & a2)
484{
485 element_type * const ret = (malloc)();
486 if (ret == 0)
487 return ret;
488 try { new (ret) element_type(a0, a1, a2); }
489 catch (...) { (free)(ret); throw; }
490 return ret;
491}
492template <typename T0, typename T1, typename T2>
493element_type * construct(T0 & a0, const volatile T1 & a1, const T2 & a2)
494{
495 element_type * const ret = (malloc)();
496 if (ret == 0)
497 return ret;
498 try { new (ret) element_type(a0, a1, a2); }
499 catch (...) { (free)(ret); throw; }
500 return ret;
501}
502template <typename T0, typename T1, typename T2>
503element_type * construct(const T0 & a0, const volatile T1 & a1, const T2 & a2)
504{
505 element_type * const ret = (malloc)();
506 if (ret == 0)
507 return ret;
508 try { new (ret) element_type(a0, a1, a2); }
509 catch (...) { (free)(ret); throw; }
510 return ret;
511}
512template <typename T0, typename T1, typename T2>
513element_type * construct(volatile T0 & a0, const volatile T1 & a1, const T2 & a2)
514{
515 element_type * const ret = (malloc)();
516 if (ret == 0)
517 return ret;
518 try { new (ret) element_type(a0, a1, a2); }
519 catch (...) { (free)(ret); throw; }
520 return ret;
521}
522template <typename T0, typename T1, typename T2>
523element_type * construct(const volatile T0 & a0, const volatile T1 & a1, const T2 & a2)
524{
525 element_type * const ret = (malloc)();
526 if (ret == 0)
527 return ret;
528 try { new (ret) element_type(a0, a1, a2); }
529 catch (...) { (free)(ret); throw; }
530 return ret;
531}
532template <typename T0, typename T1, typename T2>
533element_type * construct(T0 & a0, T1 & a1, volatile T2 & a2)
534{
535 element_type * const ret = (malloc)();
536 if (ret == 0)
537 return ret;
538 try { new (ret) element_type(a0, a1, a2); }
539 catch (...) { (free)(ret); throw; }
540 return ret;
541}
542template <typename T0, typename T1, typename T2>
543element_type * construct(const T0 & a0, T1 & a1, volatile T2 & a2)
544{
545 element_type * const ret = (malloc)();
546 if (ret == 0)
547 return ret;
548 try { new (ret) element_type(a0, a1, a2); }
549 catch (...) { (free)(ret); throw; }
550 return ret;
551}
552template <typename T0, typename T1, typename T2>
553element_type * construct(volatile T0 & a0, T1 & a1, volatile T2 & a2)
554{
555 element_type * const ret = (malloc)();
556 if (ret == 0)
557 return ret;
558 try { new (ret) element_type(a0, a1, a2); }
559 catch (...) { (free)(ret); throw; }
560 return ret;
561}
562template <typename T0, typename T1, typename T2>
563element_type * construct(const volatile T0 & a0, T1 & a1, volatile T2 & a2)
564{
565 element_type * const ret = (malloc)();
566 if (ret == 0)
567 return ret;
568 try { new (ret) element_type(a0, a1, a2); }
569 catch (...) { (free)(ret); throw; }
570 return ret;
571}
572template <typename T0, typename T1, typename T2>
573element_type * construct(T0 & a0, const T1 & a1, volatile T2 & a2)
574{
575 element_type * const ret = (malloc)();
576 if (ret == 0)
577 return ret;
578 try { new (ret) element_type(a0, a1, a2); }
579 catch (...) { (free)(ret); throw; }
580 return ret;
581}
582template <typename T0, typename T1, typename T2>
583element_type * construct(const T0 & a0, const T1 & a1, volatile T2 & a2)
584{
585 element_type * const ret = (malloc)();
586 if (ret == 0)
587 return ret;
588 try { new (ret) element_type(a0, a1, a2); }
589 catch (...) { (free)(ret); throw; }
590 return ret;
591}
592template <typename T0, typename T1, typename T2>
593element_type * construct(volatile T0 & a0, const T1 & a1, volatile T2 & a2)
594{
595 element_type * const ret = (malloc)();
596 if (ret == 0)
597 return ret;
598 try { new (ret) element_type(a0, a1, a2); }
599 catch (...) { (free)(ret); throw; }
600 return ret;
601}
602template <typename T0, typename T1, typename T2>
603element_type * construct(const volatile T0 & a0, const T1 & a1, volatile T2 & a2)
604{
605 element_type * const ret = (malloc)();
606 if (ret == 0)
607 return ret;
608 try { new (ret) element_type(a0, a1, a2); }
609 catch (...) { (free)(ret); throw; }
610 return ret;
611}
612template <typename T0, typename T1, typename T2>
613element_type * construct(T0 & a0, volatile T1 & a1, volatile T2 & a2)
614{
615 element_type * const ret = (malloc)();
616 if (ret == 0)
617 return ret;
618 try { new (ret) element_type(a0, a1, a2); }
619 catch (...) { (free)(ret); throw; }
620 return ret;
621}
622template <typename T0, typename T1, typename T2>
623element_type * construct(const T0 & a0, volatile T1 & a1, volatile T2 & a2)
624{
625 element_type * const ret = (malloc)();
626 if (ret == 0)
627 return ret;
628 try { new (ret) element_type(a0, a1, a2); }
629 catch (...) { (free)(ret); throw; }
630 return ret;
631}
632template <typename T0, typename T1, typename T2>
633element_type * construct(volatile T0 & a0, volatile T1 & a1, volatile T2 & a2)
634{
635 element_type * const ret = (malloc)();
636 if (ret == 0)
637 return ret;
638 try { new (ret) element_type(a0, a1, a2); }
639 catch (...) { (free)(ret); throw; }
640 return ret;
641}
642template <typename T0, typename T1, typename T2>
643element_type * construct(const volatile T0 & a0, volatile T1 & a1, volatile T2 & a2)
644{
645 element_type * const ret = (malloc)();
646 if (ret == 0)
647 return ret;
648 try { new (ret) element_type(a0, a1, a2); }
649 catch (...) { (free)(ret); throw; }
650 return ret;
651}
652template <typename T0, typename T1, typename T2>
653element_type * construct(T0 & a0, const volatile T1 & a1, volatile T2 & a2)
654{
655 element_type * const ret = (malloc)();
656 if (ret == 0)
657 return ret;
658 try { new (ret) element_type(a0, a1, a2); }
659 catch (...) { (free)(ret); throw; }
660 return ret;
661}
662template <typename T0, typename T1, typename T2>
663element_type * construct(const T0 & a0, const volatile T1 & a1, volatile T2 & a2)
664{
665 element_type * const ret = (malloc)();
666 if (ret == 0)
667 return ret;
668 try { new (ret) element_type(a0, a1, a2); }
669 catch (...) { (free)(ret); throw; }
670 return ret;
671}
672template <typename T0, typename T1, typename T2>
673element_type * construct(volatile T0 & a0, const volatile T1 & a1, volatile T2 & a2)
674{
675 element_type * const ret = (malloc)();
676 if (ret == 0)
677 return ret;
678 try { new (ret) element_type(a0, a1, a2); }
679 catch (...) { (free)(ret); throw; }
680 return ret;
681}
682template <typename T0, typename T1, typename T2>
683element_type * construct(const volatile T0 & a0, const volatile T1 & a1, volatile T2 & a2)
684{
685 element_type * const ret = (malloc)();
686 if (ret == 0)
687 return ret;
688 try { new (ret) element_type(a0, a1, a2); }
689 catch (...) { (free)(ret); throw; }
690 return ret;
691}
692template <typename T0, typename T1, typename T2>
693element_type * construct(T0 & a0, T1 & a1, const volatile T2 & a2)
694{
695 element_type * const ret = (malloc)();
696 if (ret == 0)
697 return ret;
698 try { new (ret) element_type(a0, a1, a2); }
699 catch (...) { (free)(ret); throw; }
700 return ret;
701}
702template <typename T0, typename T1, typename T2>
703element_type * construct(const T0 & a0, T1 & a1, const volatile T2 & a2)
704{
705 element_type * const ret = (malloc)();
706 if (ret == 0)
707 return ret;
708 try { new (ret) element_type(a0, a1, a2); }
709 catch (...) { (free)(ret); throw; }
710 return ret;
711}
712template <typename T0, typename T1, typename T2>
713element_type * construct(volatile T0 & a0, T1 & a1, const volatile T2 & a2)
714{
715 element_type * const ret = (malloc)();
716 if (ret == 0)
717 return ret;
718 try { new (ret) element_type(a0, a1, a2); }
719 catch (...) { (free)(ret); throw; }
720 return ret;
721}
722template <typename T0, typename T1, typename T2>
723element_type * construct(const volatile T0 & a0, T1 & a1, const volatile T2 & a2)
724{
725 element_type * const ret = (malloc)();
726 if (ret == 0)
727 return ret;
728 try { new (ret) element_type(a0, a1, a2); }
729 catch (...) { (free)(ret); throw; }
730 return ret;
731}
732template <typename T0, typename T1, typename T2>
733element_type * construct(T0 & a0, const T1 & a1, const volatile T2 & a2)
734{
735 element_type * const ret = (malloc)();
736 if (ret == 0)
737 return ret;
738 try { new (ret) element_type(a0, a1, a2); }
739 catch (...) { (free)(ret); throw; }
740 return ret;
741}
742template <typename T0, typename T1, typename T2>
743element_type * construct(const T0 & a0, const T1 & a1, const volatile T2 & a2)
744{
745 element_type * const ret = (malloc)();
746 if (ret == 0)
747 return ret;
748 try { new (ret) element_type(a0, a1, a2); }
749 catch (...) { (free)(ret); throw; }
750 return ret;
751}
752template <typename T0, typename T1, typename T2>
753element_type * construct(volatile T0 & a0, const T1 & a1, const volatile T2 & a2)
754{
755 element_type * const ret = (malloc)();
756 if (ret == 0)
757 return ret;
758 try { new (ret) element_type(a0, a1, a2); }
759 catch (...) { (free)(ret); throw; }
760 return ret;
761}
762template <typename T0, typename T1, typename T2>
763element_type * construct(const volatile T0 & a0, const T1 & a1, const volatile T2 & a2)
764{
765 element_type * const ret = (malloc)();
766 if (ret == 0)
767 return ret;
768 try { new (ret) element_type(a0, a1, a2); }
769 catch (...) { (free)(ret); throw; }
770 return ret;
771}
772template <typename T0, typename T1, typename T2>
773element_type * construct(T0 & a0, volatile T1 & a1, const volatile T2 & a2)
774{
775 element_type * const ret = (malloc)();
776 if (ret == 0)
777 return ret;
778 try { new (ret) element_type(a0, a1, a2); }
779 catch (...) { (free)(ret); throw; }
780 return ret;
781}
782template <typename T0, typename T1, typename T2>
783element_type * construct(const T0 & a0, volatile T1 & a1, const volatile T2 & a2)
784{
785 element_type * const ret = (malloc)();
786 if (ret == 0)
787 return ret;
788 try { new (ret) element_type(a0, a1, a2); }
789 catch (...) { (free)(ret); throw; }
790 return ret;
791}
792template <typename T0, typename T1, typename T2>
793element_type * construct(volatile T0 & a0, volatile T1 & a1, const volatile T2 & a2)
794{
795 element_type * const ret = (malloc)();
796 if (ret == 0)
797 return ret;
798 try { new (ret) element_type(a0, a1, a2); }
799 catch (...) { (free)(ret); throw; }
800 return ret;
801}
802template <typename T0, typename T1, typename T2>
803element_type * construct(const volatile T0 & a0, volatile T1 & a1, const volatile T2 & a2)
804{
805 element_type * const ret = (malloc)();
806 if (ret == 0)
807 return ret;
808 try { new (ret) element_type(a0, a1, a2); }
809 catch (...) { (free)(ret); throw; }
810 return ret;
811}
812template <typename T0, typename T1, typename T2>
813element_type * construct(T0 & a0, const volatile T1 & a1, const volatile T2 & a2)
814{
815 element_type * const ret = (malloc)();
816 if (ret == 0)
817 return ret;
818 try { new (ret) element_type(a0, a1, a2); }
819 catch (...) { (free)(ret); throw; }
820 return ret;
821}
822template <typename T0, typename T1, typename T2>
823element_type * construct(const T0 & a0, const volatile T1 & a1, const volatile T2 & a2)
824{
825 element_type * const ret = (malloc)();
826 if (ret == 0)
827 return ret;
828 try { new (ret) element_type(a0, a1, a2); }
829 catch (...) { (free)(ret); throw; }
830 return ret;
831}
832template <typename T0, typename T1, typename T2>
833element_type * construct(volatile T0 & a0, const volatile T1 & a1, const volatile T2 & a2)
834{
835 element_type * const ret = (malloc)();
836 if (ret == 0)
837 return ret;
838 try { new (ret) element_type(a0, a1, a2); }
839 catch (...) { (free)(ret); throw; }
840 return ret;
841}
842template <typename T0, typename T1, typename T2>
843element_type * construct(const volatile T0 & a0, const volatile T1 & a1, const volatile T2 & a2)
844{
845 element_type * const ret = (malloc)();
846 if (ret == 0)
847 return ret;
848 try { new (ret) element_type(a0, a1, a2); }
849 catch (...) { (free)(ret); throw; }
850 return ret;
851}
852