Ne.app NeANT
The Ne.app NeANT User module of the NeANT distribution.
20.meta.unary.nothrow.cpp
Go to the documentation of this file.
1
28#include <rw_driver.h>
29
30#ifndef _RWSTD_NO_EXT_CXX_0X
31
32// only compele when C++ 0x extensions are enabled
33
34#include <type_traits>
35
36#define THROW public: enum { value = 0 }
37#define NOTHROW public: enum { value = 1 }
38
39struct A {
40 struct A1 { NOTHROW; /* trivial copy ctor */ };
41 struct A2 { NOTHROW; A2 (A2&) throw (); };
42 struct A3 { NOTHROW; A3 (const A3&) throw (); };
43 struct A4 { NOTHROW; A4 (volatile A4&) throw (); };
44 struct A5 { NOTHROW; A5 (const volatile A5&) throw (); };
45
46#ifndef _RWSTD_NO_RVALUE_REFERENCES
47
48 // move ctor overloads (move ctor is not a copy ctor)
49 struct A6 { NOTHROW; A6 (A6&&) throw (); };
50 struct A7 { NOTHROW; A7 (const A6&&) throw (); };
51 struct A8 { NOTHROW; A8 (volatile A6&&) throw (); };
52 struct A9 { NOTHROW; A9 (const volatile A6&&) throw (); };
53
54#endif // _RWSTD_NO_RVALUE_REFERENCES
55
56};
57
58
59struct B {
60 struct B1 { THROW; B1 (B1&); };
61 struct B2 { THROW; B2 (const B2&); };
62 struct B3 { THROW; B3 (volatile B3&); };
63 struct B4 { THROW; B4 (const volatile B4&); };
64
65#ifndef _RWSTD_NO_RVALUE_REFERENCES
66
67 // move ctor overloads (move ctor is not a copy ctor)
68 struct B5 { NOTHROW; B5 (B5&&); };
69 struct B6 { NOTHROW; B6 (const B6&&); };
70 struct B7 { NOTHROW; B7 (volatile B7&&); };
71 struct B8 { NOTHROW; B8 (const volatile B8&&); };
72
73#endif // _RWSTD_NO_RVALUE_REFERENCES
74
75};
76
77
78struct C {
79 // same as A::A* but with inaccessible copy ctor
80
81 class C1 { NOTHROW; private: /* trivial copy ctor */ };
82 class C2 { NOTHROW; private: C2 (C2&) throw (); };
83 class C3 { NOTHROW; private: C3 (const C3&) throw (); };
84 class C4 { NOTHROW; private: C4 (volatile C4&) throw (); };
85 class C5 { NOTHROW; private: C5 (const volatile C5&) throw (); };
86
87#ifndef _RWSTD_NO_RVALUE_REFERENCES
88
89 // move ctor overloads (move ctor is not a copy ctor)
90 class C6 { NOTHROW; private: C6 (C6&&) throw (); };
91 class C7 { NOTHROW; private: C7 (const C7&&) throw (); };
92 class C8 { NOTHROW; private: C8 (volatile C8&&) throw (); };
93 class C9 { NOTHROW; private: C9 (const volatile C9&&) throw (); };
94
95#endif // _RWSTD_NO_RVALUE_REFERENCES
96
97};
98
99
100struct D {
101 // same as B::B* but with inaccessible copy ctor
102
103 class D1 { NOTHROW; /* trivial copy ctor */ };
104 class D2 { NOTHROW; D2 (D2&) throw (); };
105 class D3 { NOTHROW; D3 (const D3&) throw (); };
106 class D4 { NOTHROW; D4 (volatile D4&) throw (); };
107 class D5 { NOTHROW; D5 (const volatile D5&) throw (); };
108
109#ifndef _RWSTD_NO_RVALUE_REFERENCES
110
111 // move ctor overloads (move ctor is not a copy ctor)
112 class D6 { NOTHROW; D6 (D6&&) throw (); };
113 class D7 { NOTHROW; D7 (const D7&&) throw (); };
114 class D8 { NOTHROW; D8 (volatile D8&&) throw (); };
115 class D9 { NOTHROW; D9 (const volatile D9&&) throw (); };
116
117#endif // _RWSTD_NO_RVALUE_REFERENCES
118
119};
120
121
122struct E {
123 // both const and non-const copy ctors
124
125 struct E1 {
127 E1 (E1&) throw () { }
128 E1 (const E1&) throw () { }
129 };
130
131 struct E2 {
133 E2 (E2&) throw () { }
134 E2 (const E2&);
135 };
136
137 struct E3 {
139 E3 (E3&);
140 E3 (const E3&) throw () { }
141 };
142
143 struct E4 {
145 E4 (E4&);
146 E4 (const E4&);
147 };
148};
149
150
151struct F {
152 // non-const, const, and volatile copy ctors
153
154 struct F1 {
156 F1 (F1&) throw () { }
157 F1 (const F1&) throw () { }
158 F1 (volatile F1&) throw () { }
159 };
160
161 struct F2 {
163 F2 (F2&) throw () { }
164 F2 (const F2&) throw () { }
165 F2 (volatile F2&);
166 };
167
168 struct F3 {
170 F3 (F3&) throw () { }
171 F3 (const F3&);
172 F3 (volatile F3&) throw () { }
173 };
174
175 struct F4 {
177 F4 (F4&);
178 F4 (const F4&) throw () { }
179 F4 (volatile F4&) throw () { }
180 };
181};
182
183
184struct G {
185 // non-const, const, volatile, and const volatile copy ctors
186
187 struct G1 {
189 G1 (G1&) throw ();
190 G1 (const G1&) throw ();
191 G1 (volatile G1&) throw ();
192 G1 (const volatile G1&) throw ();
193 };
194
195 struct G2 {
197 G2 (G2&) throw ();
198 G2 (const G2&) throw ();
199 G2 (volatile G2&) throw ();
200 G2 (const volatile G2&);
201 };
202
203 struct G3 {
205 G3 (G3&) throw ();
206 G3 (const G3&) throw ();
207 G3 (volatile G3&);
208 G3 (const volatile G3&) throw ();
209 };
210
211 struct G4 {
213 G4 (G4&) throw ();
214 G4 (const G4&);
215 G4 (volatile G4&) throw ();
216 G4 (const volatile G4&) throw ();
217 };
218
219 struct G5 {
221 G5 (G5&);
222 G5 (const G5&) throw ();
223 G5 (volatile G5&) throw ();
224 G5 (const volatile G5&) throw ();
225 };
226};
227
228
229struct H {
230 // non-const, const, volatile, and const volatile copy ctors
231
232 struct H1 {
234 H1 (H1&) throw ();
235 H1 (const H1&) throw ();
236 H1 (volatile H1&) throw ();
237 H1 (const volatile H1&) throw ();
238 };
239
240 struct H2 {
242 H2 (H2&) throw ();
243 H2 (const H2&) throw ();
244 H2 (volatile H2&) throw ();
245 H2 (const volatile H2&);
246 };
247
248 struct H3 {
250 H3 (H3&) throw ();
251 H3 (const H3&) throw ();
252 H3 (volatile H3&);
253 H3 (const volatile H3&) throw ();
254 };
255
256 struct H4 {
258 H4 (H4&) throw ();
259 H4 (const H4&);
260 H4 (volatile H4&) throw ();
261 H4 (const volatile H4&) throw ();
262 };
263
264 struct H5 {
266 H5 (H5&);
267 H5 (const H5&) throw ();
268 H5 (volatile H5&) throw ();
269 H5 (const volatile H5&) throw ();
270 };
271};
272
273
274struct I {
275 // non-const, const, volatile, and const volatile copy ctors
276 // all with second argument
277
278 struct I1 {
280 I1 (I1&, int = 0) throw ();
281 I1 (const I1&, int = 0) throw ();
282 I1 (volatile I1&, int = 0) throw ();
283 I1 (const volatile I1&, int = 0) throw ();
284 };
285
286 struct I2 {
288 I2 (I2&, int = 0) throw ();
289 I2 (const I2&, int = 0) throw ();
290 I2 (volatile I2&, int = 0) throw ();
291 I2 (const volatile I2&, int = 0);
292 };
293
294 struct I3 {
296 I3 (I3&, int = 0) throw ();
297 I3 (const I3&, int = 0) throw ();
298 I3 (volatile I3&, int = 0);
299 I3 (const volatile I3&, int = 0) throw ();
300 };
301
302 struct I4 {
304 I4 (I4&, int = 0) throw ();
305 I4 (const I4&, int = 0);
306 I4 (volatile I4&, int = 0) throw ();
307 I4 (const volatile I4&, int = 0) throw ();
308 };
309
310 struct I5 {
312 I5 (I5&, int = 0);
313 I5 (const I5&, int = 0) throw ();
314 I5 (volatile I5&, int = 0) throw ();
315 I5 (const volatile I5&, int = 0) throw ();
316 };
317};
318
319
320struct J {
321 // non-const, const, volatile, and const volatile copy ctors
322 // plus a template ctor (a template ctor is never a copy ctor)
323
324 struct J1 {
326 J1 (J1&) throw ();
327 J1 (const J1&) throw ();
328 J1 (volatile J1&) throw ();
329 J1 (const volatile J1&) throw ();
330 template <class T> J1 (T); // not a copy ctor
331 };
332
333 struct J2 {
335 J2 (J2&) throw ();
336 J2 (const J2&) throw ();
337 J2 (volatile J2&) throw ();
338 J2 (const volatile J2&) throw ();
339 template <class T> J2 (const T&); // not a copy ctor
340 };
341
342 struct J3 {
344 J3 (J3&) throw ();
345 J3 (const J3&) throw ();
346 J3 (volatile J3&) throw ();
347 J3 (const volatile J3&) throw ();
348 template <class T> J3 (volatile T&); // not a copy ctor
349 };
350
351 struct J4 {
353 J4 (J4&) throw ();
354 J4 (const J4&) throw (){ }
355 J4 (volatile J4&) throw ();
356 J4 (const volatile J4&) throw ();
357 template <class T> J4 (const volatile T&); // not a copy ctor
358 };
359};
360
361
362struct K {
363 // nothrow non-const, const, volatile, and const volatile copy
364 // ctors plus a throwing non-copy ctor
365
366 struct K1 {
368 K1 (K1&) throw ();
369 K1 (const K1&) throw ();
370 K1 (volatile K1&) throw ();
371 K1 (const volatile K1&) throw ();
372 template <class T> K1 (T) throw (); // not a copy ctor
373 };
374
375#ifndef _RWSTD_NO_VARIADIC_TEMPLATES
376
377 struct K2 {
379 K2 (K2&) throw ();
380 K2 (const K2&) throw ();
381 K2 (volatile K2&) throw ();
382 K2 (const volatile K2&) throw ();
383 template <class ...T> K2 (T...); // not a copy ctor
384 };
385
386#endif // _RWSTD_NO_VARIADIC_TEMPLATES
387
388#ifndef _RWSTD_NO_RVALUE_REFERENCES
389
390 struct K3 {
392 K3 (K3&) throw ();
393 K3 (const K3&) throw ();
394 K3 (volatile K3&) throw ();
395 K3 (const volatile K3&) throw ();
396 K3 (K3&&); // not a copy ctor
397 };
398
399#endif // _RWSTD_NO_RVALUE_REFERENCES
400
401 struct K4 {
403 K4 (K4&) throw ();
404 K4 (const K4&) throw ();
405 K4 (volatile K4&) throw ();
406 K4 (const volatile K4&) throw ();
407 K4 (...); // not a copy ctor
408 };
409
410 struct K5 {
412 K5 (K5&) throw ();
413 K5 (const K5&) throw ();
414 K5 (volatile K5&) throw ();
415 K5 (const volatile K5&) throw ();
416 K5 (int); // not a copy ctor
417 };
418};
419
420struct L {
421
422 struct L1 {
424 // member non-const copy ctor may throw
425 struct L1_1 { L1_1 (L1_1&); } l1_1;
426 };
427
428 struct L2 {
430 // member const copy ctor may throw
431 struct L2_1 { L2_1 (const L2_1&); } l2_1;
432 };
433
434 struct L3 {
436 // member volatile copy ctor may throw
437 struct L3_1 { L3_1 (volatile L3_1&); } l3_1;
438 };
439
440 struct L4 {
442 // member const volatile copy ctor may throw
443 struct L4_1 { L4_1 (const volatile L4_1&); } l4_1;
444 };
445
446 struct L5 {
448 // member non-const copy ctor may throw
449 // but same copy ctor of parent class doesn't
450 L5 (L5&) throw ();
451 struct L5_1 { L5_1 (L5_1&); } l5_1;
452 };
453
454 struct L6 {
456 // member const copy ctor may throw
457 // but same copy ctor of parent class doesn't
458 L6 (const L6&) throw ();
459 struct L6_1 { L6_1 (const L6_1&); } l6_1;
460 };
461
462 struct L7 {
464 // member volatile copy ctor may throw
465 // but same copy ctor of parent class doesn't
466 L7 (volatile L7&) throw ();
467 struct L7_1 { L7_1 (volatile L7_1&); } l7_1;
468 };
469
470 struct L8 {
472 // member const volatile copy ctor may throw
473 // but same copy ctor of parent class doesn't
474 L8 (const volatile L8&) throw ();
475 struct L8_1 { L8_1 (const volatile L8_1&); } l8_1;
476 };
477
478 struct L9 {
480 // member const copy ctor may throw
481 // but non-const copy ctor of parent class doesn't
482 L9 (L9&) throw ();
483 struct L9_1 { L9_1 (const L9_1&); } l9_1;
484 };
485
486 struct L10 {
488 // member non-const copy ctor may throw
489 // but const copy ctor of parent class doesn't
490 L10 (const L10&) throw ();
491 struct L10_1 { L10_1 (L10_1&); } l10_1;
492 };
493
494 struct L11 {
496 L11 (L11&) throw ();
497 L11 (const L11&) throw ();
498
499 struct L11_1 {
500 L11_1 (L11_1&) throw (int);
501 L11_1 (const L11_1&) throw (int);
502 } l11_1;
503 };
504
505 struct L12 {
507 L12 (const L12&) throw ();
508
509 struct L12_1 {
510 L12_1 (L12_1&) throw (int);
511 L12_1 (const L12_1&) throw (int);
512 L12_1 (volatile L12_1&) throw (int);
513 L12_1 (const volatile L12_1&) throw (int);
514 } l12_1;
515 };
516
517 struct L13 {
519 L13 (const L13&) throw ();
520
521 struct L13_1 {
522 L13_1 (L13_1&) throw ();
523 L13_1 (const L13_1&) throw ();
524 L13_1 (volatile L13_1&) throw ();
525 L13_1 (const volatile L13_1&) throw ();
526 } l13_1;
527
528 struct L13_2 {
529 L13_2 (L13_2&) throw ();
530 L13_2 (const L13_2&) throw ();
531 L13_2 (volatile L13_2&) throw ();
532 L13_2 (const volatile L13_2&) throw (int); // may throw
533 } l13_2;
534 };
535
536 struct L14 {
538 L14 (const L14&) throw ();
539
540 struct L14_1 {
541 L14_1 (L14_1&) throw ();
542 L14_1 (const L14_1&) throw ();
543 L14_1 (volatile L14_1&) throw ();
544 L14_1 (const volatile L14_1&) throw ();
545 } l14_1;
546
547 struct L14_2 {
548 L14_2 (L14_2&) throw ();
549 L14_2 (const L14_2&) throw ();
550 L14_2 (volatile L14_2&) throw (int); // may throw
551 L14_2 (const volatile L14_2&) throw ();
552 } l14_2;
553 };
554
555 struct L15 {
557 L15 (const L15&) throw ();
558
559 struct L15_1 {
560 L15_1 (L15_1&) throw ();
561 L15_1 (const L15_1&) throw ();
562 L15_1 (volatile L15_1&) throw ();
563 L15_1 (const volatile L15_1&) throw ();
564 } l15_1;
565
566 struct L15_2 {
567 L15_2 (L15_2&) throw ();
568 L15_2 (const L15_2&) throw (int); // may throw
569 L15_2 (volatile L15_2&) throw ();
570 L15_2 (const volatile L15_2&) throw ();
571 } l15_2;
572 };
573
574 struct L16 {
576 L16 (const L16&) throw ();
577
578 struct L16_1 {
579 L16_1 (L16_1&) throw ();
580 L16_1 (const L16_1&) throw ();
581 L16_1 (volatile L16_1&) throw ();
582 L16_1 (const volatile L16_1&) throw ();
583 } l16_1;
584
585 struct L16_2 {
586 L16_2 (L16_2&) throw (int); // may throw
587 L16_2 (const L16_2&) throw ();
588 L16_2 (volatile L16_2&) throw ();
589 L16_2 (const volatile L16_2&) throw ();
590 } l16_2;
591 };
592};
593
594
595static int
596test_has_nothrow_copy ()
597{
598#ifndef _RWSTD_TT_HAS_NOTHROW_COPY
599
600 rw_warn (0, 0, __LINE__,
601 "test_has_nothrow_copy() disabled because "
602 "_RWSTD_TT_HAS_NOTHROW_COPY is not defined");
603
604#else
605
606 // exercise the has_nothrow_copy_constructor trait
607#define TEST(T) \
608 rw_assert (std::has_nothrow_copy_constructor<T>::value == T::value, \
609 0, __LINE__, \
610 "std::has_nothrow_copy_constructor<%s>::value == %d", #T, \
611 std::has_nothrow_copy_constructor<T>::value)
612
613 TEST (A::A1);
614 TEST (A::A2);
615 TEST (A::A3);
616 TEST (A::A4);
617 TEST (A::A5);
618#ifndef _RWSTD_NO_RVALUE_REFERENCES
619 TEST (A::A6);
620 TEST (A::A7);
621 TEST (A::A8);
622 TEST (A::A9);
623#endif
624
625 TEST (B::B1);
626 TEST (B::B2);
627 TEST (B::B3);
628 TEST (B::B4);
629#ifndef _RWSTD_NO_RVALUE_REFERENCES
630 TEST (B::B5);
631 TEST (B::B6);
632 TEST (B::B7);
633 TEST (B::B8);
634#endif
635
636 TEST (C::C1);
637 TEST (C::C2);
638 TEST (C::C3);
639 TEST (C::C4);
640 TEST (C::C5);
641#ifndef _RWSTD_NO_RVALUE_REFERENCES
642 TEST (C::C6);
643 TEST (C::C7);
644 TEST (C::C8);
645 TEST (C::C9);
646#endif
647
648 TEST (D::D1);
649 TEST (D::D2);
650 TEST (D::D3);
651 TEST (D::D4);
652 TEST (D::D5);
653#ifndef _RWSTD_NO_RVALUE_REFERENCES
654 TEST (D::D6);
655 TEST (D::D7);
656 TEST (D::D8);
657 TEST (D::D9);
658#endif
659
660 TEST (E::E1);
661 TEST (E::E2);
662 TEST (E::E3);
663 TEST (E::E4);
664
665 TEST (F::F1);
666 TEST (F::F2);
667 TEST (F::F3);
668 TEST (F::F4);
669
670 TEST (G::G1);
671 TEST (G::G2);
672 TEST (G::G3);
673 TEST (G::G4);
674 TEST (G::G5);
675
676 TEST (H::H1);
677 TEST (H::H2);
678 TEST (H::H3);
679 TEST (H::H4);
680 TEST (H::H5);
681
682 TEST (I::I1);
683 TEST (I::I2);
684 TEST (I::I3);
685 TEST (I::I4);
686 TEST (I::I5);
687
688 TEST (J::J1);
689 TEST (J::J2);
690 TEST (J::J3);
691 TEST (J::J4);
692
693 TEST (K::K1);
694# ifndef _RWSTD_NO_VARIADIC_TEMPLATES
695 TEST (K::K2);
696# endif
697# ifndef _RWSTD_NO_RVALUE_REFERENCES
698 TEST (K::K3);
699# endif
700 TEST (K::K4);
701 TEST (K::K5);
702
703 TEST (L::L1);
704 TEST (L::L2);
705 TEST (L::L3);
706 TEST (L::L4);
707 TEST (L::L5);
708 TEST (L::L6);
709 TEST (L::L7);
710 TEST (L::L8);
711 TEST (L::L9);
712 TEST (L::L10);
713 TEST (L::L11);
714 TEST (L::L12);
715 TEST (L::L13);
716 TEST (L::L14);
717 TEST (L::L15);
718 TEST (L::L16);
719
720#endif
721
722 return 0;
723}
724
725static int
726run_test (int, char*[])
727{
728 test_has_nothrow_copy ();
729
730 return 0;
731}
732
733
735#else // _RWSTD_NO_EXT_CXX_0X
736
737
739static int run_test (int, char*[])
740{
741 rw_warn (0, 0, __LINE__,
742 "test disabled because _RWSTD_NO_EXT_CXX_0X is defined");
743 return 0;
744}
745
746#endif // !_RWSTD_NO_EXT_CXX_0X
747
748
750int main (int argc, char*argv[])
751{
752 return rw_test (argc, argv, __FILE__,
753 "meta.unary.prop",
754 "std::has_nothrow_xxx traits",
755 run_test,
756 0);
757}
#define C3
#define NOTHROW(code)
Definition 0.new.cpp:129
#define T
Definition 17.names.cpp:163
#define D2
Definition 17.names.cpp:307
#define C2
Definition 17.names.cpp:306
#define THROW
#define TEST(src, off)
void run_test(const ForwardIterator &dummy, T *, Predicate *pred)
#define main
_TEST_EXPORT int rw_test(int argc, char *argv[], const char *filename, const char *clause, const char *comment, int(*testfun)(int, char **), const char *optspec,...)
_TEST_EXPORT int rw_warn(int, const char *, int, const char *,...)
Definition driver.cpp:1647
A2(A2 &)
A3(const A3 &)
A4(volatile A4 &)
A5(const volatile A5 &)
A6(A6 &&)
A7(const A6 &&)
A8(volatile A6 &&)
A9(const volatile A6 &&)
B1(B1 &)
B2(const B2 &)
B3(volatile B3 &)
B4(const volatile B4 &)
B5(B5 &&)
B6(const B6 &&)
B7(volatile B7 &&)
B8(const volatile B8 &&)
E2(const E2 &)
E3(E3 &)
E4(E4 &)
E4(const E4 &)
F1(volatile F1 &)
F2(volatile F2 &)
F3(volatile F3 &)
F3(const F3 &)
F4(volatile F4 &)
F4(F4 &)
G1(const G1 &)
G1(const volatile G1 &)
G1(G1 &)
G1(volatile G1 &)
G2(G2 &)
G2(const volatile G2 &)
G2(const G2 &)
G2(volatile G2 &)
G3(G3 &)
G3(const volatile G3 &)
G3(const G3 &)
G3(volatile G3 &)
G4(const volatile G4 &)
G4(const G4 &)
G4(volatile G4 &)
G4(G4 &)
G5(const G5 &)
G5(G5 &)
G5(const volatile G5 &)
G5(volatile G5 &)
H1(const volatile H1 &)
H1(volatile H1 &)
H1(const H1 &)
H1(H1 &)
H2(const volatile H2 &)
H2(const H2 &)
H2(H2 &)
H2(volatile H2 &)
H3(volatile H3 &)
H3(const H3 &)
H3(const volatile H3 &)
H3(H3 &)
H4(const H4 &)
H4(volatile H4 &)
H4(H4 &)
H4(const volatile H4 &)
H5(const H5 &)
H5(const volatile H5 &)
H5(H5 &)
H5(volatile H5 &)
I1(I1 &, int=0)
I2(I2 &, int=0)
I3(I3 &, int=0)
I4(I4 &, int=0)
I5(const I5 &, int=0)
I5(I5 &, int=0)
J1(J1 &)
J1(const J1 &)
J1(volatile J1 &)
J1(const volatile J1 &)
J2(const J2 &)
J2(const T &)
J2(J2 &)
J2(const volatile J2 &)
J2(volatile J2 &)
J3(const J3 &)
J3(volatile J3 &)
J3(volatile T &)
J3(const volatile J3 &)
J3(J3 &)
J4(J4 &)
J4(volatile J4 &)
J4(const volatile J4 &)
J4(const volatile T &)
K1(const K1 &)
K1(volatile K1 &)
K1(const volatile K1 &)
K1(K1 &)
K2(const volatile K2 &)
K2(const K2 &)
K2(K2 &)
K2(T...)
K2(volatile K2 &)
K3(K3 &)
K3(volatile K3 &)
K3(K3 &&)
K3(const volatile K3 &)
K3(const K3 &)
K4(...)
K4(volatile K4 &)
K4(const volatile K4 &)
K4(K4 &)
K4(const K4 &)
K5(const K5 &)
K5(volatile K5 &)
K5(int)
K5(K5 &)
K5(const volatile K5 &)
L10(const L10 &)
L11_1(L11_1 &)
L11_1(const L11_1 &)
L11(L11 &)
L11(const L11 &)
L12_1(L12_1 &)
L12_1(volatile L12_1 &)
L12_1(const volatile L12_1 &)
L12_1(const L12_1 &)
L12(const L12 &)
L13_1(L13_1 &)
L13_1(volatile L13_1 &)
L13_1(const volatile L13_1 &)
L13_1(const L13_1 &)
L13_2(volatile L13_2 &)
L13_2(const volatile L13_2 &)
L13_2(L13_2 &)
L13_2(const L13_2 &)
L13(const L13 &)
L14_1(L14_1 &)
L14_1(const volatile L14_1 &)
L14_1(const L14_1 &)
L14_1(volatile L14_1 &)
L14_2(const volatile L14_2 &)
L14_2(const L14_2 &)
L14_2(L14_2 &)
L14_2(volatile L14_2 &)
L14(const L14 &)
L15_1(const volatile L15_1 &)
L15_1(L15_1 &)
L15_1(const L15_1 &)
L15_1(volatile L15_1 &)
L15_2(const L15_2 &)
L15_2(L15_2 &)
L15_2(volatile L15_2 &)
L15_2(const volatile L15_2 &)
L15(const L15 &)
L16_1(const L16_1 &)
L16_1(const volatile L16_1 &)
L16_1(volatile L16_1 &)
L16_1(L16_1 &)
L16_2(const volatile L16_2 &)
L16_2(L16_2 &)
L16_2(volatile L16_2 &)
L16_2(const L16_2 &)
L16(const L16 &)
L1_1(L1_1 &)
L5_1(L5_1 &)
L5(L5 &)
L6(const L6 &)
L7(volatile L7 &)
L8_1(const volatile L8_1 &)
L8(const volatile L8 &)
L9_1(const L9_1 &)
L9(L9 &)