1 //===------------------------- dynamic_cast14.cpp -------------------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is dual licensed under the MIT and the University of Illinois Open 6 // Source Licenses. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include <cassert> 11 12 namespace t1 13 { 14 15 struct A1 16 { 17 char _[43981]; 18 virtual ~A1() {} 19 20 A1* getA1() {return this;} 21 }; 22 23 struct A2 24 { 25 char _[34981]; 26 virtual ~A2() {} 27 28 A2* getA2() {return this;} 29 }; 30 31 struct A3 32 : public A1, 33 public virtual A2 34 { 35 char _[93481]; 36 virtual ~A3() {} 37 38 A1* getA1_3() {return A1::getA1();} 39 A2* getA2() {return A2::getA2();} 40 A3* getA3() {return this;} 41 }; 42 43 struct A4 44 : public virtual A2, 45 public A1 46 { 47 char _[13489]; 48 virtual ~A4() {} 49 50 A1* getA1_4() {return A1::getA1();} 51 A2* getA2() {return A2::getA2();} 52 A4* getA4() {return this;} 53 }; 54 55 struct A5 56 : public A3, 57 public A4 58 { 59 char _[13489]; 60 virtual ~A5() {} 61 62 A1* getA1_3() {return A3::getA1();} 63 A1* getA1_4() {return A4::getA1();} 64 A2* getA2() {return A3::getA2();} 65 A3* getA3() {return A3::getA3();} 66 A4* getA4() {return A4::getA4();} 67 A5* getA5() {return this;} 68 }; 69 70 struct A6 71 : public A1 72 { 73 char _[81349]; 74 virtual ~A6() {} 75 76 A1* getA1_6() {return A1::getA1();} 77 A6* getA6() {return this;} 78 }; 79 80 struct A7 81 : public A5, 82 public A6 83 { 84 char _[34819]; 85 virtual ~A7() {} 86 87 A1* getA1_3() {return A5::getA1_3();} 88 A1* getA1_4() {return A5::getA1_4();} 89 A1* getA1_6() {return A6::getA1_6();} 90 A2* getA2() {return A5::getA2();} 91 A3* getA3() {return A5::getA3();} 92 A4* getA4() {return A5::getA4();} 93 A5* getA5() {return A5::getA5();} 94 A6* getA6() {return A6::getA6();} 95 A7* getA7() {return this;} 96 }; 97 98 struct A8 99 : public A7 100 { 101 char _[3489]; 102 virtual ~A8() {} 103 104 A1* getA1_3() {return A7::getA1_3();} 105 A1* getA1_4() {return A7::getA1_4();} 106 A1* getA1_6() {return A7::getA1_6();} 107 A2* getA2() {return A7::getA2();} 108 A3* getA3() {return A7::getA3();} 109 A4* getA4() {return A7::getA4();} 110 A5* getA5() {return A7::getA5();} 111 A6* getA6() {return A7::getA6();} 112 A7* getA7() {return A7::getA7();} 113 A8* getA8() {return this;} 114 }; 115 116 struct A9 117 : public A1 118 { 119 char _[3481]; 120 virtual ~A9() {} 121 122 A1* getA1_9() {return A1::getA1();} 123 A9* getA9() {return this;} 124 }; 125 126 struct A10 127 : public virtual A8 128 { 129 char _[4831]; 130 virtual ~A10() {} 131 132 A1* getA1_3() {return A8::getA1_3();} 133 A1* getA1_4() {return A8::getA1_4();} 134 A1* getA1_6() {return A8::getA1_6();} 135 A2* getA2() {return A8::getA2();} 136 A3* getA3() {return A8::getA3();} 137 A4* getA4() {return A8::getA4();} 138 A5* getA5() {return A8::getA5();} 139 A6* getA6() {return A8::getA6();} 140 A7* getA7() {return A8::getA7();} 141 A8* getA8() {return A8::getA8();} 142 A10* getA10() {return this;} 143 }; 144 145 struct A11 146 : public virtual A8, 147 public A9 148 { 149 char _[6483]; 150 virtual ~A11() {} 151 152 A1* getA1_3() {return A8::getA1_3();} 153 A1* getA1_4() {return A8::getA1_4();} 154 A1* getA1_6() {return A8::getA1_6();} 155 A1* getA1_9() {return A9::getA1_9();} 156 A2* getA2() {return A8::getA2();} 157 A3* getA3() {return A8::getA3();} 158 A4* getA4() {return A8::getA4();} 159 A5* getA5() {return A8::getA5();} 160 A6* getA6() {return A8::getA6();} 161 A7* getA7() {return A8::getA7();} 162 A8* getA8() {return A8::getA8();} 163 A9* getA9() {return A9::getA9();} 164 A11* getA11() {return this;} 165 }; 166 167 struct A12 168 : public A10, 169 public A11 170 { 171 char _[2283]; 172 virtual ~A12() {} 173 174 A1* getA1_3() {return A10::getA1_3();} 175 A1* getA1_4() {return A10::getA1_4();} 176 A1* getA1_6() {return A10::getA1_6();} 177 A1* getA1_9() {return A11::getA1_9();} 178 A2* getA2() {return A10::getA2();} 179 A3* getA3() {return A10::getA3();} 180 A4* getA4() {return A10::getA4();} 181 A5* getA5() {return A10::getA5();} 182 A6* getA6() {return A10::getA6();} 183 A7* getA7() {return A10::getA7();} 184 A8* getA8() {return A10::getA8();} 185 A9* getA9() {return A11::getA9();} 186 A10* getA10() {return A10::getA10();} 187 A11* getA11() {return A11::getA11();} 188 A12* getA12() {return this;} 189 }; 190 191 struct A13 192 : public A12 193 { 194 char _[1283]; 195 virtual ~A13() {} 196 197 A1* getA1_3() {return A12::getA1_3();} 198 A1* getA1_4() {return A12::getA1_4();} 199 A1* getA1_6() {return A12::getA1_6();} 200 A1* getA1_9() {return A12::getA1_9();} 201 A2* getA2() {return A12::getA2();} 202 A3* getA3() {return A12::getA3();} 203 A4* getA4() {return A12::getA4();} 204 A5* getA5() {return A12::getA5();} 205 A6* getA6() {return A12::getA6();} 206 A7* getA7() {return A12::getA7();} 207 A8* getA8() {return A12::getA8();} 208 A9* getA9() {return A12::getA9();} 209 A10* getA10() {return A12::getA10();} 210 A11* getA11() {return A12::getA11();} 211 A12* getA12() {return A12::getA12();} 212 A13* getA13() {return this;} 213 }; 214 215 void test() 216 { 217 A3 a3; 218 A4 a4; 219 A5 a5; 220 A6 a6; 221 A7 a7; 222 A8 a8; 223 A9 a9; 224 A10 a10; 225 A11 a11; 226 A12 a12; 227 A13 a13; 228 229 assert(dynamic_cast<A3*>(a3.getA1_3()) == a3.getA3()); 230 assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 231 232 assert(dynamic_cast<A3*>(a4.getA1_4()) == 0); 233 assert(dynamic_cast<A3*>(a4.getA2()) == 0); 234 assert(dynamic_cast<A4*>(a4.getA1_4()) == a4.getA4()); 235 assert(dynamic_cast<A4*>(a4.getA2()) == a4.getA4()); 236 237 assert(dynamic_cast<A3*>(a5.getA1_3()) == a5.getA3()); 238 assert(dynamic_cast<A3*>(a5.getA2()) == a5.getA3()); 239 240 assert(dynamic_cast<A4*>(a5.getA1_3()) == a5.getA4()); 241 assert(dynamic_cast<A4*>(a5.getA1_4()) == a5.getA4()); 242 assert(dynamic_cast<A4*>(a5.getA3()) == a5.getA4()); 243 assert(dynamic_cast<A4*>(a5.getA3()) == a5.getA4()); 244 245 assert(dynamic_cast<A5*>(a5.getA1_3()) == a5.getA5()); 246 assert(dynamic_cast<A5*>(a5.getA1_4()) == a5.getA5()); 247 assert(dynamic_cast<A5*>(a5.getA3()) == a5.getA5()); 248 assert(dynamic_cast<A5*>(a5.getA3()) == a5.getA5()); 249 assert(dynamic_cast<A5*>(a5.getA3()) == a5.getA5()); 250 assert(dynamic_cast<A5*>(a5.getA4()) == a5.getA5()); 251 252 assert(dynamic_cast<A3*>(a6.getA1_6()) == 0); 253 254 assert(dynamic_cast<A4*>(a6.getA1_6()) == 0); 255 256 assert(dynamic_cast<A5*>(a6.getA1_6()) == 0); 257 258 assert(dynamic_cast<A6*>(a6.getA1_6()) == a6.getA6()); 259 260 assert(dynamic_cast<A3*>(a7.getA1_3()) == a7.getA3()); 261 assert(dynamic_cast<A3*>(a7.getA1_4()) == a7.getA3()); 262 assert(dynamic_cast<A3*>(a7.getA2()) == a7.getA3()); 263 264 assert(dynamic_cast<A4*>(a7.getA1_3()) == a7.getA4()); 265 assert(dynamic_cast<A4*>(a7.getA1_4()) == a7.getA4()); 266 assert(dynamic_cast<A4*>(a7.getA2()) == a7.getA4()); 267 assert(dynamic_cast<A4*>(a7.getA3()) == a7.getA4()); 268 269 assert(dynamic_cast<A5*>(a7.getA1_3()) == a7.getA5()); 270 assert(dynamic_cast<A5*>(a7.getA1_4()) == a7.getA5()); 271 assert(dynamic_cast<A5*>(a7.getA2()) == a7.getA5()); 272 assert(dynamic_cast<A5*>(a7.getA3()) == a7.getA5()); 273 assert(dynamic_cast<A5*>(a7.getA4()) == a7.getA5()); 274 275 assert(dynamic_cast<A6*>(a7.getA1_3()) == a7.getA6()); 276 assert(dynamic_cast<A6*>(a7.getA1_4()) == a7.getA6()); 277 assert(dynamic_cast<A6*>(a7.getA1_6()) == a7.getA6()); 278 assert(dynamic_cast<A6*>(a7.getA2()) == a7.getA6()); 279 assert(dynamic_cast<A6*>(a7.getA3()) == a7.getA6()); 280 assert(dynamic_cast<A6*>(a7.getA4()) == a7.getA6()); 281 assert(dynamic_cast<A6*>(a7.getA5()) == a7.getA6()); 282 283 assert(dynamic_cast<A7*>(a7.getA1_3()) == a7.getA7()); 284 assert(dynamic_cast<A7*>(a7.getA1_4()) == a7.getA7()); 285 assert(dynamic_cast<A7*>(a7.getA1_6()) == a7.getA7()); 286 assert(dynamic_cast<A7*>(a7.getA2()) == a7.getA7()); 287 assert(dynamic_cast<A7*>(a7.getA3()) == a7.getA7()); 288 assert(dynamic_cast<A7*>(a7.getA4()) == a7.getA7()); 289 assert(dynamic_cast<A7*>(a7.getA5()) == a7.getA7()); 290 assert(dynamic_cast<A7*>(a7.getA6()) == a7.getA7()); 291 292 assert(dynamic_cast<A3*>(a8.getA1_3()) == a8.getA3()); 293 assert(dynamic_cast<A3*>(a8.getA1_4()) == a8.getA3()); 294 assert(dynamic_cast<A3*>(a8.getA2()) == a8.getA3()); 295 296 assert(dynamic_cast<A4*>(a8.getA1_3()) == a8.getA4()); 297 assert(dynamic_cast<A4*>(a8.getA1_4()) == a8.getA4()); 298 assert(dynamic_cast<A4*>(a8.getA2()) == a8.getA4()); 299 assert(dynamic_cast<A4*>(a8.getA3()) == a8.getA4()); 300 301 assert(dynamic_cast<A5*>(a8.getA1_3()) == a8.getA5()); 302 assert(dynamic_cast<A5*>(a8.getA1_4()) == a8.getA5()); 303 assert(dynamic_cast<A5*>(a8.getA2()) == a8.getA5()); 304 assert(dynamic_cast<A5*>(a8.getA3()) == a8.getA5()); 305 assert(dynamic_cast<A5*>(a8.getA4()) == a8.getA5()); 306 307 assert(dynamic_cast<A6*>(a8.getA1_3()) == a8.getA6()); 308 assert(dynamic_cast<A6*>(a8.getA1_4()) == a8.getA6()); 309 assert(dynamic_cast<A6*>(a8.getA1_6()) == a8.getA6()); 310 assert(dynamic_cast<A6*>(a8.getA2()) == a8.getA6()); 311 assert(dynamic_cast<A6*>(a8.getA3()) == a8.getA6()); 312 assert(dynamic_cast<A6*>(a8.getA4()) == a8.getA6()); 313 assert(dynamic_cast<A6*>(a8.getA5()) == a8.getA6()); 314 315 assert(dynamic_cast<A7*>(a8.getA1_3()) == a8.getA7()); 316 assert(dynamic_cast<A7*>(a8.getA1_4()) == a8.getA7()); 317 assert(dynamic_cast<A7*>(a8.getA1_6()) == a8.getA7()); 318 assert(dynamic_cast<A7*>(a8.getA2()) == a8.getA7()); 319 assert(dynamic_cast<A7*>(a8.getA3()) == a8.getA7()); 320 assert(dynamic_cast<A7*>(a8.getA4()) == a8.getA7()); 321 assert(dynamic_cast<A7*>(a8.getA5()) == a8.getA7()); 322 assert(dynamic_cast<A7*>(a8.getA6()) == a8.getA7()); 323 324 assert(dynamic_cast<A8*>(a8.getA1_3()) == a8.getA8()); 325 assert(dynamic_cast<A8*>(a8.getA1_4()) == a8.getA8()); 326 assert(dynamic_cast<A8*>(a8.getA1_6()) == a8.getA8()); 327 assert(dynamic_cast<A8*>(a8.getA2()) == a8.getA8()); 328 assert(dynamic_cast<A8*>(a8.getA3()) == a8.getA8()); 329 assert(dynamic_cast<A8*>(a8.getA4()) == a8.getA8()); 330 assert(dynamic_cast<A8*>(a8.getA5()) == a8.getA8()); 331 assert(dynamic_cast<A8*>(a8.getA6()) == a8.getA8()); 332 assert(dynamic_cast<A8*>(a8.getA7()) == a8.getA8()); 333 334 assert(dynamic_cast<A3*>(a9.getA1_9()) == 0); 335 336 assert(dynamic_cast<A4*>(a9.getA1_9()) == 0); 337 338 assert(dynamic_cast<A5*>(a9.getA1_9()) == 0); 339 340 assert(dynamic_cast<A6*>(a9.getA1_9()) == 0); 341 342 assert(dynamic_cast<A7*>(a9.getA1_9()) == 0); 343 344 assert(dynamic_cast<A8*>(a9.getA1_9()) == 0); 345 346 assert(dynamic_cast<A9*>(a9.getA1_9()) == a9.getA9()); 347 348 assert(dynamic_cast<A3*>(a10.getA1_3()) == a10.getA3()); 349 assert(dynamic_cast<A3*>(a10.getA1_4()) == a10.getA3()); 350 assert(dynamic_cast<A3*>(a10.getA1_6()) == a10.getA3()); 351 assert(dynamic_cast<A3*>(a10.getA2()) == a10.getA3()); 352 353 assert(dynamic_cast<A4*>(a10.getA1_3()) == a10.getA4()); 354 assert(dynamic_cast<A4*>(a10.getA1_4()) == a10.getA4()); 355 assert(dynamic_cast<A4*>(a10.getA1_6()) == a10.getA4()); 356 assert(dynamic_cast<A4*>(a10.getA2()) == a10.getA4()); 357 assert(dynamic_cast<A4*>(a10.getA3()) == a10.getA4()); 358 359 assert(dynamic_cast<A5*>(a10.getA1_3()) == a10.getA5()); 360 assert(dynamic_cast<A5*>(a10.getA1_4()) == a10.getA5()); 361 assert(dynamic_cast<A5*>(a10.getA1_6()) == a10.getA5()); 362 assert(dynamic_cast<A5*>(a10.getA2()) == a10.getA5()); 363 assert(dynamic_cast<A5*>(a10.getA3()) == a10.getA5()); 364 assert(dynamic_cast<A5*>(a10.getA4()) == a10.getA5()); 365 366 assert(dynamic_cast<A6*>(a10.getA1_3()) == a10.getA6()); 367 assert(dynamic_cast<A6*>(a10.getA1_4()) == a10.getA6()); 368 assert(dynamic_cast<A6*>(a10.getA1_6()) == a10.getA6()); 369 assert(dynamic_cast<A6*>(a10.getA2()) == a10.getA6()); 370 assert(dynamic_cast<A6*>(a10.getA3()) == a10.getA6()); 371 assert(dynamic_cast<A6*>(a10.getA4()) == a10.getA6()); 372 assert(dynamic_cast<A6*>(a10.getA5()) == a10.getA6()); 373 374 assert(dynamic_cast<A7*>(a10.getA1_3()) == a10.getA7()); 375 assert(dynamic_cast<A7*>(a10.getA1_4()) == a10.getA7()); 376 assert(dynamic_cast<A7*>(a10.getA1_6()) == a10.getA7()); 377 assert(dynamic_cast<A7*>(a10.getA2()) == a10.getA7()); 378 assert(dynamic_cast<A7*>(a10.getA3()) == a10.getA7()); 379 assert(dynamic_cast<A7*>(a10.getA4()) == a10.getA7()); 380 assert(dynamic_cast<A7*>(a10.getA5()) == a10.getA7()); 381 assert(dynamic_cast<A7*>(a10.getA6()) == a10.getA7()); 382 383 assert(dynamic_cast<A8*>(a10.getA1_3()) == a10.getA8()); 384 assert(dynamic_cast<A8*>(a10.getA1_4()) == a10.getA8()); 385 assert(dynamic_cast<A8*>(a10.getA1_6()) == a10.getA8()); 386 assert(dynamic_cast<A8*>(a10.getA2()) == a10.getA8()); 387 assert(dynamic_cast<A8*>(a10.getA3()) == a10.getA8()); 388 assert(dynamic_cast<A8*>(a10.getA4()) == a10.getA8()); 389 assert(dynamic_cast<A8*>(a10.getA5()) == a10.getA8()); 390 assert(dynamic_cast<A8*>(a10.getA6()) == a10.getA8()); 391 assert(dynamic_cast<A8*>(a10.getA7()) == a10.getA8()); 392 393 assert(dynamic_cast<A9*>(a10.getA1_3()) == 0); 394 assert(dynamic_cast<A9*>(a10.getA1_4()) == 0); 395 assert(dynamic_cast<A9*>(a10.getA1_6()) == 0); 396 assert(dynamic_cast<A9*>(a10.getA2()) == 0); 397 assert(dynamic_cast<A9*>(a10.getA3()) == 0); 398 assert(dynamic_cast<A9*>(a10.getA4()) == 0); 399 assert(dynamic_cast<A9*>(a10.getA5()) == 0); 400 assert(dynamic_cast<A9*>(a10.getA6()) == 0); 401 assert(dynamic_cast<A9*>(a10.getA7()) == 0); 402 assert(dynamic_cast<A9*>(a10.getA8()) == 0); 403 404 assert(dynamic_cast<A10*>(a10.getA1_3()) == a10.getA10()); 405 assert(dynamic_cast<A10*>(a10.getA1_4()) == a10.getA10()); 406 assert(dynamic_cast<A10*>(a10.getA1_6()) == a10.getA10()); 407 assert(dynamic_cast<A10*>(a10.getA2()) == a10.getA10()); 408 assert(dynamic_cast<A10*>(a10.getA3()) == a10.getA10()); 409 assert(dynamic_cast<A10*>(a10.getA4()) == a10.getA10()); 410 assert(dynamic_cast<A10*>(a10.getA5()) == a10.getA10()); 411 assert(dynamic_cast<A10*>(a10.getA6()) == a10.getA10()); 412 assert(dynamic_cast<A10*>(a10.getA7()) == a10.getA10()); 413 assert(dynamic_cast<A10*>(a10.getA8()) == a10.getA10()); 414 415 assert(dynamic_cast<A3*>(a11.getA1_3()) == a11.getA3()); 416 assert(dynamic_cast<A3*>(a11.getA1_4()) == a11.getA3()); 417 assert(dynamic_cast<A3*>(a11.getA1_6()) == a11.getA3()); 418 assert(dynamic_cast<A3*>(a11.getA1_9()) == a11.getA3()); 419 assert(dynamic_cast<A3*>(a11.getA2()) == a11.getA3()); 420 421 assert(dynamic_cast<A4*>(a11.getA1_3()) == a11.getA4()); 422 assert(dynamic_cast<A4*>(a11.getA1_4()) == a11.getA4()); 423 assert(dynamic_cast<A4*>(a11.getA1_6()) == a11.getA4()); 424 assert(dynamic_cast<A4*>(a11.getA1_9()) == a11.getA4()); 425 assert(dynamic_cast<A4*>(a11.getA2()) == a11.getA4()); 426 assert(dynamic_cast<A4*>(a11.getA3()) == a11.getA4()); 427 428 assert(dynamic_cast<A5*>(a11.getA1_3()) == a11.getA5()); 429 assert(dynamic_cast<A5*>(a11.getA1_4()) == a11.getA5()); 430 assert(dynamic_cast<A5*>(a11.getA1_6()) == a11.getA5()); 431 assert(dynamic_cast<A5*>(a11.getA1_9()) == a11.getA5()); 432 assert(dynamic_cast<A5*>(a11.getA2()) == a11.getA5()); 433 assert(dynamic_cast<A5*>(a11.getA3()) == a11.getA5()); 434 assert(dynamic_cast<A5*>(a11.getA4()) == a11.getA5()); 435 436 assert(dynamic_cast<A6*>(a11.getA1_3()) == a11.getA6()); 437 assert(dynamic_cast<A6*>(a11.getA1_4()) == a11.getA6()); 438 assert(dynamic_cast<A6*>(a11.getA1_6()) == a11.getA6()); 439 assert(dynamic_cast<A6*>(a11.getA1_9()) == a11.getA6()); 440 assert(dynamic_cast<A6*>(a11.getA2()) == a11.getA6()); 441 assert(dynamic_cast<A6*>(a11.getA3()) == a11.getA6()); 442 assert(dynamic_cast<A6*>(a11.getA4()) == a11.getA6()); 443 assert(dynamic_cast<A6*>(a11.getA5()) == a11.getA6()); 444 445 assert(dynamic_cast<A7*>(a11.getA1_3()) == a11.getA7()); 446 assert(dynamic_cast<A7*>(a11.getA1_4()) == a11.getA7()); 447 assert(dynamic_cast<A7*>(a11.getA1_6()) == a11.getA7()); 448 assert(dynamic_cast<A7*>(a11.getA1_9()) == a11.getA7()); 449 assert(dynamic_cast<A7*>(a11.getA2()) == a11.getA7()); 450 assert(dynamic_cast<A7*>(a11.getA3()) == a11.getA7()); 451 assert(dynamic_cast<A7*>(a11.getA4()) == a11.getA7()); 452 assert(dynamic_cast<A7*>(a11.getA5()) == a11.getA7()); 453 assert(dynamic_cast<A7*>(a11.getA6()) == a11.getA7()); 454 455 assert(dynamic_cast<A8*>(a11.getA1_3()) == a11.getA8()); 456 assert(dynamic_cast<A8*>(a11.getA1_4()) == a11.getA8()); 457 assert(dynamic_cast<A8*>(a11.getA1_6()) == a11.getA8()); 458 assert(dynamic_cast<A8*>(a11.getA1_9()) == a11.getA8()); 459 assert(dynamic_cast<A8*>(a11.getA2()) == a11.getA8()); 460 assert(dynamic_cast<A8*>(a11.getA3()) == a11.getA8()); 461 assert(dynamic_cast<A8*>(a11.getA4()) == a11.getA8()); 462 assert(dynamic_cast<A8*>(a11.getA5()) == a11.getA8()); 463 assert(dynamic_cast<A8*>(a11.getA6()) == a11.getA8()); 464 assert(dynamic_cast<A8*>(a11.getA7()) == a11.getA8()); 465 466 assert(dynamic_cast<A9*>(a11.getA1_3()) == a11.getA9()); 467 assert(dynamic_cast<A9*>(a11.getA1_4()) == a11.getA9()); 468 assert(dynamic_cast<A9*>(a11.getA1_6()) == a11.getA9()); 469 assert(dynamic_cast<A9*>(a11.getA1_9()) == a11.getA9()); 470 assert(dynamic_cast<A9*>(a11.getA2()) == a11.getA9()); 471 assert(dynamic_cast<A9*>(a11.getA3()) == a11.getA9()); 472 assert(dynamic_cast<A9*>(a11.getA4()) == a11.getA9()); 473 assert(dynamic_cast<A9*>(a11.getA5()) == a11.getA9()); 474 assert(dynamic_cast<A9*>(a11.getA6()) == a11.getA9()); 475 assert(dynamic_cast<A9*>(a11.getA7()) == a11.getA9()); 476 assert(dynamic_cast<A9*>(a11.getA8()) == a11.getA9()); 477 478 assert(dynamic_cast<A10*>(a11.getA1_3()) == 0); 479 assert(dynamic_cast<A10*>(a11.getA1_4()) == 0); 480 assert(dynamic_cast<A10*>(a11.getA1_6()) == 0); 481 assert(dynamic_cast<A10*>(a11.getA1_9()) == 0); 482 assert(dynamic_cast<A10*>(a11.getA2()) == 0); 483 assert(dynamic_cast<A10*>(a11.getA3()) == 0); 484 assert(dynamic_cast<A10*>(a11.getA4()) == 0); 485 assert(dynamic_cast<A10*>(a11.getA5()) == 0); 486 assert(dynamic_cast<A10*>(a11.getA6()) == 0); 487 assert(dynamic_cast<A10*>(a11.getA7()) == 0); 488 assert(dynamic_cast<A10*>(a11.getA8()) == 0); 489 assert(dynamic_cast<A10*>(a11.getA9()) == 0); 490 491 assert(dynamic_cast<A11*>(a11.getA1_3()) == a11.getA11()); 492 assert(dynamic_cast<A11*>(a11.getA1_4()) == a11.getA11()); 493 assert(dynamic_cast<A11*>(a11.getA1_6()) == a11.getA11()); 494 assert(dynamic_cast<A11*>(a11.getA1_9()) == a11.getA11()); 495 assert(dynamic_cast<A11*>(a11.getA2()) == a11.getA11()); 496 assert(dynamic_cast<A11*>(a11.getA3()) == a11.getA11()); 497 assert(dynamic_cast<A11*>(a11.getA4()) == a11.getA11()); 498 assert(dynamic_cast<A11*>(a11.getA5()) == a11.getA11()); 499 assert(dynamic_cast<A11*>(a11.getA6()) == a11.getA11()); 500 assert(dynamic_cast<A11*>(a11.getA7()) == a11.getA11()); 501 assert(dynamic_cast<A11*>(a11.getA8()) == a11.getA11()); 502 assert(dynamic_cast<A11*>(a11.getA9()) == a11.getA11()); 503 504 assert(dynamic_cast<A3*>(a12.getA1_3()) == a12.getA3()); 505 assert(dynamic_cast<A3*>(a12.getA1_4()) == a12.getA3()); 506 assert(dynamic_cast<A3*>(a12.getA1_6()) == a12.getA3()); 507 assert(dynamic_cast<A3*>(a12.getA1_9()) == a12.getA3()); 508 assert(dynamic_cast<A3*>(a12.getA2()) == a12.getA3()); 509 510 assert(dynamic_cast<A4*>(a12.getA1_3()) == a12.getA4()); 511 assert(dynamic_cast<A4*>(a12.getA1_4()) == a12.getA4()); 512 assert(dynamic_cast<A4*>(a12.getA1_6()) == a12.getA4()); 513 assert(dynamic_cast<A4*>(a12.getA1_9()) == a12.getA4()); 514 assert(dynamic_cast<A4*>(a12.getA2()) == a12.getA4()); 515 assert(dynamic_cast<A4*>(a12.getA3()) == a12.getA4()); 516 517 assert(dynamic_cast<A5*>(a12.getA1_3()) == a12.getA5()); 518 assert(dynamic_cast<A5*>(a12.getA1_4()) == a12.getA5()); 519 assert(dynamic_cast<A5*>(a12.getA1_6()) == a12.getA5()); 520 assert(dynamic_cast<A5*>(a12.getA1_9()) == a12.getA5()); 521 assert(dynamic_cast<A5*>(a12.getA2()) == a12.getA5()); 522 assert(dynamic_cast<A5*>(a12.getA3()) == a12.getA5()); 523 assert(dynamic_cast<A5*>(a12.getA4()) == a12.getA5()); 524 525 assert(dynamic_cast<A6*>(a12.getA1_3()) == a12.getA6()); 526 assert(dynamic_cast<A6*>(a12.getA1_4()) == a12.getA6()); 527 assert(dynamic_cast<A6*>(a12.getA1_6()) == a12.getA6()); 528 assert(dynamic_cast<A6*>(a12.getA1_9()) == a12.getA6()); 529 assert(dynamic_cast<A6*>(a12.getA2()) == a12.getA6()); 530 assert(dynamic_cast<A6*>(a12.getA3()) == a12.getA6()); 531 assert(dynamic_cast<A6*>(a12.getA4()) == a12.getA6()); 532 assert(dynamic_cast<A6*>(a12.getA5()) == a12.getA6()); 533 534 assert(dynamic_cast<A7*>(a12.getA1_3()) == a12.getA7()); 535 assert(dynamic_cast<A7*>(a12.getA1_4()) == a12.getA7()); 536 assert(dynamic_cast<A7*>(a12.getA1_6()) == a12.getA7()); 537 assert(dynamic_cast<A7*>(a12.getA1_9()) == a12.getA7()); 538 assert(dynamic_cast<A7*>(a12.getA2()) == a12.getA7()); 539 assert(dynamic_cast<A7*>(a12.getA3()) == a12.getA7()); 540 assert(dynamic_cast<A7*>(a12.getA4()) == a12.getA7()); 541 assert(dynamic_cast<A7*>(a12.getA5()) == a12.getA7()); 542 assert(dynamic_cast<A7*>(a12.getA6()) == a12.getA7()); 543 544 assert(dynamic_cast<A8*>(a12.getA1_3()) == a12.getA8()); 545 assert(dynamic_cast<A8*>(a12.getA1_4()) == a12.getA8()); 546 assert(dynamic_cast<A8*>(a12.getA1_6()) == a12.getA8()); 547 assert(dynamic_cast<A8*>(a12.getA1_9()) == a12.getA8()); 548 assert(dynamic_cast<A8*>(a12.getA2()) == a12.getA8()); 549 assert(dynamic_cast<A8*>(a12.getA3()) == a12.getA8()); 550 assert(dynamic_cast<A8*>(a12.getA4()) == a12.getA8()); 551 assert(dynamic_cast<A8*>(a12.getA5()) == a12.getA8()); 552 assert(dynamic_cast<A8*>(a12.getA6()) == a12.getA8()); 553 assert(dynamic_cast<A8*>(a12.getA7()) == a12.getA8()); 554 555 assert(dynamic_cast<A9*>(a12.getA1_3()) == a12.getA9()); 556 assert(dynamic_cast<A9*>(a12.getA1_4()) == a12.getA9()); 557 assert(dynamic_cast<A9*>(a12.getA1_6()) == a12.getA9()); 558 assert(dynamic_cast<A9*>(a12.getA1_9()) == a12.getA9()); 559 assert(dynamic_cast<A9*>(a12.getA2()) == a12.getA9()); 560 assert(dynamic_cast<A9*>(a12.getA3()) == a12.getA9()); 561 assert(dynamic_cast<A9*>(a12.getA4()) == a12.getA9()); 562 assert(dynamic_cast<A9*>(a12.getA5()) == a12.getA9()); 563 assert(dynamic_cast<A9*>(a12.getA6()) == a12.getA9()); 564 assert(dynamic_cast<A9*>(a12.getA7()) == a12.getA9()); 565 assert(dynamic_cast<A9*>(a12.getA8()) == a12.getA9()); 566 567 assert(dynamic_cast<A10*>(a12.getA1_3()) == a12.getA10()); 568 assert(dynamic_cast<A10*>(a12.getA1_4()) == a12.getA10()); 569 assert(dynamic_cast<A10*>(a12.getA1_6()) == a12.getA10()); 570 assert(dynamic_cast<A10*>(a12.getA1_9()) == a12.getA10()); 571 assert(dynamic_cast<A10*>(a12.getA2()) == a12.getA10()); 572 assert(dynamic_cast<A10*>(a12.getA3()) == a12.getA10()); 573 assert(dynamic_cast<A10*>(a12.getA4()) == a12.getA10()); 574 assert(dynamic_cast<A10*>(a12.getA5()) == a12.getA10()); 575 assert(dynamic_cast<A10*>(a12.getA6()) == a12.getA10()); 576 assert(dynamic_cast<A10*>(a12.getA7()) == a12.getA10()); 577 assert(dynamic_cast<A10*>(a12.getA8()) == a12.getA10()); 578 assert(dynamic_cast<A10*>(a12.getA9()) == a12.getA10()); 579 580 assert(dynamic_cast<A11*>(a12.getA1_3()) == a12.getA11()); 581 assert(dynamic_cast<A11*>(a12.getA1_4()) == a12.getA11()); 582 assert(dynamic_cast<A11*>(a12.getA1_6()) == a12.getA11()); 583 assert(dynamic_cast<A11*>(a12.getA1_9()) == a12.getA11()); 584 assert(dynamic_cast<A11*>(a12.getA2()) == a12.getA11()); 585 assert(dynamic_cast<A11*>(a12.getA3()) == a12.getA11()); 586 assert(dynamic_cast<A11*>(a12.getA4()) == a12.getA11()); 587 assert(dynamic_cast<A11*>(a12.getA5()) == a12.getA11()); 588 assert(dynamic_cast<A11*>(a12.getA6()) == a12.getA11()); 589 assert(dynamic_cast<A11*>(a12.getA7()) == a12.getA11()); 590 assert(dynamic_cast<A11*>(a12.getA8()) == a12.getA11()); 591 assert(dynamic_cast<A11*>(a12.getA9()) == a12.getA11()); 592 assert(dynamic_cast<A11*>(a12.getA10()) == a12.getA11()); 593 594 assert(dynamic_cast<A12*>(a12.getA1_3()) == a12.getA12()); 595 assert(dynamic_cast<A12*>(a12.getA1_4()) == a12.getA12()); 596 assert(dynamic_cast<A12*>(a12.getA1_6()) == a12.getA12()); 597 assert(dynamic_cast<A12*>(a12.getA1_9()) == a12.getA12()); 598 assert(dynamic_cast<A12*>(a12.getA2()) == a12.getA12()); 599 assert(dynamic_cast<A12*>(a12.getA3()) == a12.getA12()); 600 assert(dynamic_cast<A12*>(a12.getA4()) == a12.getA12()); 601 assert(dynamic_cast<A12*>(a12.getA5()) == a12.getA12()); 602 assert(dynamic_cast<A12*>(a12.getA6()) == a12.getA12()); 603 assert(dynamic_cast<A12*>(a12.getA7()) == a12.getA12()); 604 assert(dynamic_cast<A12*>(a12.getA8()) == a12.getA12()); 605 assert(dynamic_cast<A12*>(a12.getA9()) == a12.getA12()); 606 assert(dynamic_cast<A12*>(a12.getA10()) == a12.getA12()); 607 assert(dynamic_cast<A12*>(a12.getA11()) == a12.getA12()); 608 609 assert(dynamic_cast<A3*>(a13.getA1_3()) == a13.getA3()); 610 assert(dynamic_cast<A3*>(a13.getA1_4()) == a13.getA3()); 611 assert(dynamic_cast<A3*>(a13.getA1_6()) == a13.getA3()); 612 assert(dynamic_cast<A3*>(a13.getA1_9()) == a13.getA3()); 613 assert(dynamic_cast<A3*>(a13.getA2()) == a13.getA3()); 614 615 assert(dynamic_cast<A4*>(a13.getA1_3()) == a13.getA4()); 616 assert(dynamic_cast<A4*>(a13.getA1_4()) == a13.getA4()); 617 assert(dynamic_cast<A4*>(a13.getA1_6()) == a13.getA4()); 618 assert(dynamic_cast<A4*>(a13.getA1_9()) == a13.getA4()); 619 assert(dynamic_cast<A4*>(a13.getA2()) == a13.getA4()); 620 assert(dynamic_cast<A4*>(a13.getA3()) == a13.getA4()); 621 622 assert(dynamic_cast<A5*>(a13.getA1_3()) == a13.getA5()); 623 assert(dynamic_cast<A5*>(a13.getA1_4()) == a13.getA5()); 624 assert(dynamic_cast<A5*>(a13.getA1_6()) == a13.getA5()); 625 assert(dynamic_cast<A5*>(a13.getA1_9()) == a13.getA5()); 626 assert(dynamic_cast<A5*>(a13.getA2()) == a13.getA5()); 627 assert(dynamic_cast<A5*>(a13.getA3()) == a13.getA5()); 628 assert(dynamic_cast<A5*>(a13.getA4()) == a13.getA5()); 629 630 assert(dynamic_cast<A6*>(a13.getA1_3()) == a13.getA6()); 631 assert(dynamic_cast<A6*>(a13.getA1_4()) == a13.getA6()); 632 assert(dynamic_cast<A6*>(a13.getA1_6()) == a13.getA6()); 633 assert(dynamic_cast<A6*>(a13.getA1_9()) == a13.getA6()); 634 assert(dynamic_cast<A6*>(a13.getA2()) == a13.getA6()); 635 assert(dynamic_cast<A6*>(a13.getA3()) == a13.getA6()); 636 assert(dynamic_cast<A6*>(a13.getA4()) == a13.getA6()); 637 assert(dynamic_cast<A6*>(a13.getA5()) == a13.getA6()); 638 639 assert(dynamic_cast<A7*>(a13.getA1_3()) == a13.getA7()); 640 assert(dynamic_cast<A7*>(a13.getA1_4()) == a13.getA7()); 641 assert(dynamic_cast<A7*>(a13.getA1_6()) == a13.getA7()); 642 assert(dynamic_cast<A7*>(a13.getA1_9()) == a13.getA7()); 643 assert(dynamic_cast<A7*>(a13.getA2()) == a13.getA7()); 644 assert(dynamic_cast<A7*>(a13.getA3()) == a13.getA7()); 645 assert(dynamic_cast<A7*>(a13.getA4()) == a13.getA7()); 646 assert(dynamic_cast<A7*>(a13.getA5()) == a13.getA7()); 647 assert(dynamic_cast<A7*>(a13.getA6()) == a13.getA7()); 648 649 assert(dynamic_cast<A8*>(a13.getA1_3()) == a13.getA8()); 650 assert(dynamic_cast<A8*>(a13.getA1_4()) == a13.getA8()); 651 assert(dynamic_cast<A8*>(a13.getA1_6()) == a13.getA8()); 652 assert(dynamic_cast<A8*>(a13.getA1_9()) == a13.getA8()); 653 assert(dynamic_cast<A8*>(a13.getA2()) == a13.getA8()); 654 assert(dynamic_cast<A8*>(a13.getA3()) == a13.getA8()); 655 assert(dynamic_cast<A8*>(a13.getA4()) == a13.getA8()); 656 assert(dynamic_cast<A8*>(a13.getA5()) == a13.getA8()); 657 assert(dynamic_cast<A8*>(a13.getA6()) == a13.getA8()); 658 assert(dynamic_cast<A8*>(a13.getA7()) == a13.getA8()); 659 660 assert(dynamic_cast<A9*>(a13.getA1_3()) == a13.getA9()); 661 assert(dynamic_cast<A9*>(a13.getA1_4()) == a13.getA9()); 662 assert(dynamic_cast<A9*>(a13.getA1_6()) == a13.getA9()); 663 assert(dynamic_cast<A9*>(a13.getA1_9()) == a13.getA9()); 664 assert(dynamic_cast<A9*>(a13.getA2()) == a13.getA9()); 665 assert(dynamic_cast<A9*>(a13.getA3()) == a13.getA9()); 666 assert(dynamic_cast<A9*>(a13.getA4()) == a13.getA9()); 667 assert(dynamic_cast<A9*>(a13.getA5()) == a13.getA9()); 668 assert(dynamic_cast<A9*>(a13.getA6()) == a13.getA9()); 669 assert(dynamic_cast<A9*>(a13.getA7()) == a13.getA9()); 670 assert(dynamic_cast<A9*>(a13.getA8()) == a13.getA9()); 671 672 assert(dynamic_cast<A10*>(a13.getA1_3()) == a13.getA10()); 673 assert(dynamic_cast<A10*>(a13.getA1_4()) == a13.getA10()); 674 assert(dynamic_cast<A10*>(a13.getA1_6()) == a13.getA10()); 675 assert(dynamic_cast<A10*>(a13.getA1_9()) == a13.getA10()); 676 assert(dynamic_cast<A10*>(a13.getA2()) == a13.getA10()); 677 assert(dynamic_cast<A10*>(a13.getA3()) == a13.getA10()); 678 assert(dynamic_cast<A10*>(a13.getA4()) == a13.getA10()); 679 assert(dynamic_cast<A10*>(a13.getA5()) == a13.getA10()); 680 assert(dynamic_cast<A10*>(a13.getA6()) == a13.getA10()); 681 assert(dynamic_cast<A10*>(a13.getA7()) == a13.getA10()); 682 assert(dynamic_cast<A10*>(a13.getA8()) == a13.getA10()); 683 assert(dynamic_cast<A10*>(a13.getA9()) == a13.getA10()); 684 685 assert(dynamic_cast<A11*>(a13.getA1_3()) == a13.getA11()); 686 assert(dynamic_cast<A11*>(a13.getA1_4()) == a13.getA11()); 687 assert(dynamic_cast<A11*>(a13.getA1_6()) == a13.getA11()); 688 assert(dynamic_cast<A11*>(a13.getA1_9()) == a13.getA11()); 689 assert(dynamic_cast<A11*>(a13.getA2()) == a13.getA11()); 690 assert(dynamic_cast<A11*>(a13.getA3()) == a13.getA11()); 691 assert(dynamic_cast<A11*>(a13.getA4()) == a13.getA11()); 692 assert(dynamic_cast<A11*>(a13.getA5()) == a13.getA11()); 693 assert(dynamic_cast<A11*>(a13.getA6()) == a13.getA11()); 694 assert(dynamic_cast<A11*>(a13.getA7()) == a13.getA11()); 695 assert(dynamic_cast<A11*>(a13.getA8()) == a13.getA11()); 696 assert(dynamic_cast<A11*>(a13.getA9()) == a13.getA11()); 697 assert(dynamic_cast<A11*>(a13.getA10()) == a13.getA11()); 698 699 assert(dynamic_cast<A12*>(a13.getA1_3()) == a13.getA12()); 700 assert(dynamic_cast<A12*>(a13.getA1_4()) == a13.getA12()); 701 assert(dynamic_cast<A12*>(a13.getA1_6()) == a13.getA12()); 702 assert(dynamic_cast<A12*>(a13.getA1_9()) == a13.getA12()); 703 assert(dynamic_cast<A12*>(a13.getA2()) == a13.getA12()); 704 assert(dynamic_cast<A12*>(a13.getA3()) == a13.getA12()); 705 assert(dynamic_cast<A12*>(a13.getA4()) == a13.getA12()); 706 assert(dynamic_cast<A12*>(a13.getA5()) == a13.getA12()); 707 assert(dynamic_cast<A12*>(a13.getA6()) == a13.getA12()); 708 assert(dynamic_cast<A12*>(a13.getA7()) == a13.getA12()); 709 assert(dynamic_cast<A12*>(a13.getA8()) == a13.getA12()); 710 assert(dynamic_cast<A12*>(a13.getA9()) == a13.getA12()); 711 assert(dynamic_cast<A12*>(a13.getA10()) == a13.getA12()); 712 assert(dynamic_cast<A12*>(a13.getA11()) == a13.getA12()); 713 714 assert(dynamic_cast<A13*>(a13.getA1_3()) == a13.getA13()); 715 assert(dynamic_cast<A13*>(a13.getA1_4()) == a13.getA13()); 716 assert(dynamic_cast<A13*>(a13.getA1_6()) == a13.getA13()); 717 assert(dynamic_cast<A13*>(a13.getA1_9()) == a13.getA13()); 718 assert(dynamic_cast<A13*>(a13.getA2()) == a13.getA13()); 719 assert(dynamic_cast<A13*>(a13.getA3()) == a13.getA13()); 720 assert(dynamic_cast<A13*>(a13.getA4()) == a13.getA13()); 721 assert(dynamic_cast<A13*>(a13.getA5()) == a13.getA13()); 722 assert(dynamic_cast<A13*>(a13.getA6()) == a13.getA13()); 723 assert(dynamic_cast<A13*>(a13.getA7()) == a13.getA13()); 724 assert(dynamic_cast<A13*>(a13.getA8()) == a13.getA13()); 725 assert(dynamic_cast<A13*>(a13.getA9()) == a13.getA13()); 726 assert(dynamic_cast<A13*>(a13.getA10()) == a13.getA13()); 727 assert(dynamic_cast<A13*>(a13.getA11()) == a13.getA13()); 728 assert(dynamic_cast<A13*>(a13.getA12()) == a13.getA13()); 729 } 730 731 } // t1 732 733 namespace t2 734 { 735 736 struct A1 737 { 738 char _[43981]; 739 virtual ~A1() {} 740 741 A1* getA1() {return this;} 742 }; 743 744 struct A2 745 { 746 char _[34981]; 747 virtual ~A2() {} 748 749 A2* getA2() {return this;} 750 }; 751 752 struct A3 753 : protected A1, 754 public virtual A2 755 { 756 char _[93481]; 757 virtual ~A3() {} 758 759 A1* getA1_3() {return A1::getA1();} 760 A2* getA2() {return A2::getA2();} 761 A3* getA3() {return this;} 762 }; 763 764 struct A4 765 : public virtual A2, 766 public A1 767 { 768 char _[13489]; 769 virtual ~A4() {} 770 771 A1* getA1_4() {return A1::getA1();} 772 A2* getA2() {return A2::getA2();} 773 A4* getA4() {return this;} 774 }; 775 776 struct A5 777 : public A3, 778 public A4 779 { 780 char _[13489]; 781 virtual ~A5() {} 782 783 A1* getA1_3() {return A3::getA1();} 784 A1* getA1_4() {return A4::getA1();} 785 A2* getA2() {return A3::getA2();} 786 A3* getA3() {return A3::getA3();} 787 A4* getA4() {return A4::getA4();} 788 A5* getA5() {return this;} 789 }; 790 791 struct A6 792 : public A1 793 { 794 char _[81349]; 795 virtual ~A6() {} 796 797 A1* getA1_6() {return A1::getA1();} 798 A6* getA6() {return this;} 799 }; 800 801 struct A7 802 : public A5, 803 public A6 804 { 805 char _[34819]; 806 virtual ~A7() {} 807 808 A1* getA1_3() {return A5::getA1_3();} 809 A1* getA1_4() {return A5::getA1_4();} 810 A1* getA1_6() {return A6::getA1_6();} 811 A2* getA2() {return A5::getA2();} 812 A3* getA3() {return A5::getA3();} 813 A4* getA4() {return A5::getA4();} 814 A5* getA5() {return A5::getA5();} 815 A6* getA6() {return A6::getA6();} 816 A7* getA7() {return this;} 817 }; 818 819 struct A8 820 : public A7 821 { 822 char _[3489]; 823 virtual ~A8() {} 824 825 A1* getA1_3() {return A7::getA1_3();} 826 A1* getA1_4() {return A7::getA1_4();} 827 A1* getA1_6() {return A7::getA1_6();} 828 A2* getA2() {return A7::getA2();} 829 A3* getA3() {return A7::getA3();} 830 A4* getA4() {return A7::getA4();} 831 A5* getA5() {return A7::getA5();} 832 A6* getA6() {return A7::getA6();} 833 A7* getA7() {return A7::getA7();} 834 A8* getA8() {return this;} 835 }; 836 837 struct A9 838 : public A1 839 { 840 char _[3481]; 841 virtual ~A9() {} 842 843 A1* getA1_9() {return A1::getA1();} 844 A9* getA9() {return this;} 845 }; 846 847 struct A10 848 : public virtual A8 849 { 850 char _[4831]; 851 virtual ~A10() {} 852 853 A1* getA1_3() {return A8::getA1_3();} 854 A1* getA1_4() {return A8::getA1_4();} 855 A1* getA1_6() {return A8::getA1_6();} 856 A2* getA2() {return A8::getA2();} 857 A3* getA3() {return A8::getA3();} 858 A4* getA4() {return A8::getA4();} 859 A5* getA5() {return A8::getA5();} 860 A6* getA6() {return A8::getA6();} 861 A7* getA7() {return A8::getA7();} 862 A8* getA8() {return A8::getA8();} 863 A10* getA10() {return this;} 864 }; 865 866 struct A11 867 : public virtual A8, 868 public A9 869 { 870 char _[6483]; 871 virtual ~A11() {} 872 873 A1* getA1_3() {return A8::getA1_3();} 874 A1* getA1_4() {return A8::getA1_4();} 875 A1* getA1_6() {return A8::getA1_6();} 876 A1* getA1_9() {return A9::getA1_9();} 877 A2* getA2() {return A8::getA2();} 878 A3* getA3() {return A8::getA3();} 879 A4* getA4() {return A8::getA4();} 880 A5* getA5() {return A8::getA5();} 881 A6* getA6() {return A8::getA6();} 882 A7* getA7() {return A8::getA7();} 883 A8* getA8() {return A8::getA8();} 884 A9* getA9() {return A9::getA9();} 885 A11* getA11() {return this;} 886 }; 887 888 struct A12 889 : public A10, 890 public A11 891 { 892 char _[2283]; 893 virtual ~A12() {} 894 895 A1* getA1_3() {return A10::getA1_3();} 896 A1* getA1_4() {return A10::getA1_4();} 897 A1* getA1_6() {return A10::getA1_6();} 898 A1* getA1_9() {return A11::getA1_9();} 899 A2* getA2() {return A10::getA2();} 900 A3* getA3() {return A10::getA3();} 901 A4* getA4() {return A10::getA4();} 902 A5* getA5() {return A10::getA5();} 903 A6* getA6() {return A10::getA6();} 904 A7* getA7() {return A10::getA7();} 905 A8* getA8() {return A10::getA8();} 906 A9* getA9() {return A11::getA9();} 907 A10* getA10() {return A10::getA10();} 908 A11* getA11() {return A11::getA11();} 909 A12* getA12() {return this;} 910 }; 911 912 struct A13 913 : public A12 914 { 915 char _[1283]; 916 virtual ~A13() {} 917 918 A1* getA1_3() {return A12::getA1_3();} 919 A1* getA1_4() {return A12::getA1_4();} 920 A1* getA1_6() {return A12::getA1_6();} 921 A1* getA1_9() {return A12::getA1_9();} 922 A2* getA2() {return A12::getA2();} 923 A3* getA3() {return A12::getA3();} 924 A4* getA4() {return A12::getA4();} 925 A5* getA5() {return A12::getA5();} 926 A6* getA6() {return A12::getA6();} 927 A7* getA7() {return A12::getA7();} 928 A8* getA8() {return A12::getA8();} 929 A9* getA9() {return A12::getA9();} 930 A10* getA10() {return A12::getA10();} 931 A11* getA11() {return A12::getA11();} 932 A12* getA12() {return A12::getA12();} 933 A13* getA13() {return this;} 934 }; 935 936 void test() 937 { 938 A3 a3; 939 A4 a4; 940 A5 a5; 941 A6 a6; 942 A7 a7; 943 A8 a8; 944 A9 a9; 945 A10 a10; 946 A11 a11; 947 A12 a12; 948 A13 a13; 949 950 assert(dynamic_cast<A3*>(a3.getA1_3()) == 0); 951 assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 952 953 assert(dynamic_cast<A3*>(a4.getA1_4()) == 0); 954 assert(dynamic_cast<A3*>(a4.getA2()) == 0); 955 assert(dynamic_cast<A4*>(a4.getA1_4()) == a4.getA4()); 956 assert(dynamic_cast<A4*>(a4.getA2()) == a4.getA4()); 957 958 assert(dynamic_cast<A3*>(a5.getA1_3()) == 0); 959 assert(dynamic_cast<A3*>(a5.getA2()) == a5.getA3()); 960 961 assert(dynamic_cast<A4*>(a5.getA1_3()) == 0); 962 assert(dynamic_cast<A4*>(a5.getA1_4()) == a5.getA4()); 963 assert(dynamic_cast<A4*>(a5.getA3()) == a5.getA4()); 964 assert(dynamic_cast<A4*>(a5.getA3()) == a5.getA4()); 965 966 assert(dynamic_cast<A5*>(a5.getA1_3()) == 0); 967 assert(dynamic_cast<A5*>(a5.getA1_4()) == a5.getA5()); 968 assert(dynamic_cast<A5*>(a5.getA3()) == a5.getA5()); 969 assert(dynamic_cast<A5*>(a5.getA3()) == a5.getA5()); 970 assert(dynamic_cast<A5*>(a5.getA3()) == a5.getA5()); 971 assert(dynamic_cast<A5*>(a5.getA4()) == a5.getA5()); 972 973 assert(dynamic_cast<A3*>(a6.getA1_6()) == 0); 974 975 assert(dynamic_cast<A4*>(a6.getA1_6()) == 0); 976 977 assert(dynamic_cast<A5*>(a6.getA1_6()) == 0); 978 979 assert(dynamic_cast<A6*>(a6.getA1_6()) == a6.getA6()); 980 981 assert(dynamic_cast<A3*>(a7.getA1_3()) == 0); 982 assert(dynamic_cast<A3*>(a7.getA1_4()) == a7.getA3()); 983 assert(dynamic_cast<A3*>(a7.getA2()) == a7.getA3()); 984 985 assert(dynamic_cast<A4*>(a7.getA1_3()) == 0); 986 assert(dynamic_cast<A4*>(a7.getA1_4()) == a7.getA4()); 987 assert(dynamic_cast<A4*>(a7.getA2()) == a7.getA4()); 988 assert(dynamic_cast<A4*>(a7.getA3()) == a7.getA4()); 989 990 assert(dynamic_cast<A5*>(a7.getA1_3()) == 0); 991 assert(dynamic_cast<A5*>(a7.getA1_4()) == a7.getA5()); 992 assert(dynamic_cast<A5*>(a7.getA2()) == a7.getA5()); 993 assert(dynamic_cast<A5*>(a7.getA3()) == a7.getA5()); 994 assert(dynamic_cast<A5*>(a7.getA4()) == a7.getA5()); 995 996 assert(dynamic_cast<A6*>(a7.getA1_3()) == 0); 997 assert(dynamic_cast<A6*>(a7.getA1_4()) == a7.getA6()); 998 assert(dynamic_cast<A6*>(a7.getA1_6()) == a7.getA6()); 999 assert(dynamic_cast<A6*>(a7.getA2()) == a7.getA6()); 1000 assert(dynamic_cast<A6*>(a7.getA3()) == a7.getA6()); 1001 assert(dynamic_cast<A6*>(a7.getA4()) == a7.getA6()); 1002 assert(dynamic_cast<A6*>(a7.getA5()) == a7.getA6()); 1003 1004 assert(dynamic_cast<A7*>(a7.getA1_3()) == 0); 1005 assert(dynamic_cast<A7*>(a7.getA1_4()) == a7.getA7()); 1006 assert(dynamic_cast<A7*>(a7.getA1_6()) == a7.getA7()); 1007 assert(dynamic_cast<A7*>(a7.getA2()) == a7.getA7()); 1008 assert(dynamic_cast<A7*>(a7.getA3()) == a7.getA7()); 1009 assert(dynamic_cast<A7*>(a7.getA4()) == a7.getA7()); 1010 assert(dynamic_cast<A7*>(a7.getA5()) == a7.getA7()); 1011 assert(dynamic_cast<A7*>(a7.getA6()) == a7.getA7()); 1012 1013 assert(dynamic_cast<A3*>(a8.getA1_3()) == 0); 1014 assert(dynamic_cast<A3*>(a8.getA1_4()) == a8.getA3()); 1015 assert(dynamic_cast<A3*>(a8.getA2()) == a8.getA3()); 1016 1017 assert(dynamic_cast<A4*>(a8.getA1_3()) == 0); 1018 assert(dynamic_cast<A4*>(a8.getA1_4()) == a8.getA4()); 1019 assert(dynamic_cast<A4*>(a8.getA2()) == a8.getA4()); 1020 assert(dynamic_cast<A4*>(a8.getA3()) == a8.getA4()); 1021 1022 assert(dynamic_cast<A5*>(a8.getA1_3()) == 0); 1023 assert(dynamic_cast<A5*>(a8.getA1_4()) == a8.getA5()); 1024 assert(dynamic_cast<A5*>(a8.getA2()) == a8.getA5()); 1025 assert(dynamic_cast<A5*>(a8.getA3()) == a8.getA5()); 1026 assert(dynamic_cast<A5*>(a8.getA4()) == a8.getA5()); 1027 1028 assert(dynamic_cast<A6*>(a8.getA1_3()) == 0); 1029 assert(dynamic_cast<A6*>(a8.getA1_4()) == a8.getA6()); 1030 assert(dynamic_cast<A6*>(a8.getA1_6()) == a8.getA6()); 1031 assert(dynamic_cast<A6*>(a8.getA2()) == a8.getA6()); 1032 assert(dynamic_cast<A6*>(a8.getA3()) == a8.getA6()); 1033 assert(dynamic_cast<A6*>(a8.getA4()) == a8.getA6()); 1034 assert(dynamic_cast<A6*>(a8.getA5()) == a8.getA6()); 1035 1036 assert(dynamic_cast<A7*>(a8.getA1_3()) == 0); 1037 assert(dynamic_cast<A7*>(a8.getA1_4()) == a8.getA7()); 1038 assert(dynamic_cast<A7*>(a8.getA1_6()) == a8.getA7()); 1039 assert(dynamic_cast<A7*>(a8.getA2()) == a8.getA7()); 1040 assert(dynamic_cast<A7*>(a8.getA3()) == a8.getA7()); 1041 assert(dynamic_cast<A7*>(a8.getA4()) == a8.getA7()); 1042 assert(dynamic_cast<A7*>(a8.getA5()) == a8.getA7()); 1043 assert(dynamic_cast<A7*>(a8.getA6()) == a8.getA7()); 1044 1045 assert(dynamic_cast<A8*>(a8.getA1_3()) == 0); 1046 assert(dynamic_cast<A8*>(a8.getA1_4()) == a8.getA8()); 1047 assert(dynamic_cast<A8*>(a8.getA1_6()) == a8.getA8()); 1048 assert(dynamic_cast<A8*>(a8.getA2()) == a8.getA8()); 1049 assert(dynamic_cast<A8*>(a8.getA3()) == a8.getA8()); 1050 assert(dynamic_cast<A8*>(a8.getA4()) == a8.getA8()); 1051 assert(dynamic_cast<A8*>(a8.getA5()) == a8.getA8()); 1052 assert(dynamic_cast<A8*>(a8.getA6()) == a8.getA8()); 1053 assert(dynamic_cast<A8*>(a8.getA7()) == a8.getA8()); 1054 1055 assert(dynamic_cast<A3*>(a9.getA1_9()) == 0); 1056 1057 assert(dynamic_cast<A4*>(a9.getA1_9()) == 0); 1058 1059 assert(dynamic_cast<A5*>(a9.getA1_9()) == 0); 1060 1061 assert(dynamic_cast<A6*>(a9.getA1_9()) == 0); 1062 1063 assert(dynamic_cast<A7*>(a9.getA1_9()) == 0); 1064 1065 assert(dynamic_cast<A8*>(a9.getA1_9()) == 0); 1066 1067 assert(dynamic_cast<A9*>(a9.getA1_9()) == a9.getA9()); 1068 1069 assert(dynamic_cast<A3*>(a10.getA1_3()) == 0); 1070 assert(dynamic_cast<A3*>(a10.getA1_4()) == a10.getA3()); 1071 assert(dynamic_cast<A3*>(a10.getA1_6()) == a10.getA3()); 1072 assert(dynamic_cast<A3*>(a10.getA2()) == a10.getA3()); 1073 1074 assert(dynamic_cast<A4*>(a10.getA1_3()) == 0); 1075 assert(dynamic_cast<A4*>(a10.getA1_4()) == a10.getA4()); 1076 assert(dynamic_cast<A4*>(a10.getA1_6()) == a10.getA4()); 1077 assert(dynamic_cast<A4*>(a10.getA2()) == a10.getA4()); 1078 assert(dynamic_cast<A4*>(a10.getA3()) == a10.getA4()); 1079 1080 assert(dynamic_cast<A5*>(a10.getA1_3()) == 0); 1081 assert(dynamic_cast<A5*>(a10.getA1_4()) == a10.getA5()); 1082 assert(dynamic_cast<A5*>(a10.getA1_6()) == a10.getA5()); 1083 assert(dynamic_cast<A5*>(a10.getA2()) == a10.getA5()); 1084 assert(dynamic_cast<A5*>(a10.getA3()) == a10.getA5()); 1085 assert(dynamic_cast<A5*>(a10.getA4()) == a10.getA5()); 1086 1087 assert(dynamic_cast<A6*>(a10.getA1_3()) == 0); 1088 assert(dynamic_cast<A6*>(a10.getA1_4()) == a10.getA6()); 1089 assert(dynamic_cast<A6*>(a10.getA1_6()) == a10.getA6()); 1090 assert(dynamic_cast<A6*>(a10.getA2()) == a10.getA6()); 1091 assert(dynamic_cast<A6*>(a10.getA3()) == a10.getA6()); 1092 assert(dynamic_cast<A6*>(a10.getA4()) == a10.getA6()); 1093 assert(dynamic_cast<A6*>(a10.getA5()) == a10.getA6()); 1094 1095 assert(dynamic_cast<A7*>(a10.getA1_3()) == 0); 1096 assert(dynamic_cast<A7*>(a10.getA1_4()) == a10.getA7()); 1097 assert(dynamic_cast<A7*>(a10.getA1_6()) == a10.getA7()); 1098 assert(dynamic_cast<A7*>(a10.getA2()) == a10.getA7()); 1099 assert(dynamic_cast<A7*>(a10.getA3()) == a10.getA7()); 1100 assert(dynamic_cast<A7*>(a10.getA4()) == a10.getA7()); 1101 assert(dynamic_cast<A7*>(a10.getA5()) == a10.getA7()); 1102 assert(dynamic_cast<A7*>(a10.getA6()) == a10.getA7()); 1103 1104 assert(dynamic_cast<A8*>(a10.getA1_3()) == 0); 1105 assert(dynamic_cast<A8*>(a10.getA1_4()) == a10.getA8()); 1106 assert(dynamic_cast<A8*>(a10.getA1_6()) == a10.getA8()); 1107 assert(dynamic_cast<A8*>(a10.getA2()) == a10.getA8()); 1108 assert(dynamic_cast<A8*>(a10.getA3()) == a10.getA8()); 1109 assert(dynamic_cast<A8*>(a10.getA4()) == a10.getA8()); 1110 assert(dynamic_cast<A8*>(a10.getA5()) == a10.getA8()); 1111 assert(dynamic_cast<A8*>(a10.getA6()) == a10.getA8()); 1112 assert(dynamic_cast<A8*>(a10.getA7()) == a10.getA8()); 1113 1114 assert(dynamic_cast<A9*>(a10.getA1_3()) == 0); 1115 assert(dynamic_cast<A9*>(a10.getA1_4()) == 0); 1116 assert(dynamic_cast<A9*>(a10.getA1_6()) == 0); 1117 assert(dynamic_cast<A9*>(a10.getA2()) == 0); 1118 assert(dynamic_cast<A9*>(a10.getA3()) == 0); 1119 assert(dynamic_cast<A9*>(a10.getA4()) == 0); 1120 assert(dynamic_cast<A9*>(a10.getA5()) == 0); 1121 assert(dynamic_cast<A9*>(a10.getA6()) == 0); 1122 assert(dynamic_cast<A9*>(a10.getA7()) == 0); 1123 assert(dynamic_cast<A9*>(a10.getA8()) == 0); 1124 1125 assert(dynamic_cast<A10*>(a10.getA1_3()) == 0); 1126 assert(dynamic_cast<A10*>(a10.getA1_4()) == a10.getA10()); 1127 assert(dynamic_cast<A10*>(a10.getA1_6()) == a10.getA10()); 1128 assert(dynamic_cast<A10*>(a10.getA2()) == a10.getA10()); 1129 assert(dynamic_cast<A10*>(a10.getA3()) == a10.getA10()); 1130 assert(dynamic_cast<A10*>(a10.getA4()) == a10.getA10()); 1131 assert(dynamic_cast<A10*>(a10.getA5()) == a10.getA10()); 1132 assert(dynamic_cast<A10*>(a10.getA6()) == a10.getA10()); 1133 assert(dynamic_cast<A10*>(a10.getA7()) == a10.getA10()); 1134 assert(dynamic_cast<A10*>(a10.getA8()) == a10.getA10()); 1135 1136 assert(dynamic_cast<A3*>(a11.getA1_3()) == 0); 1137 assert(dynamic_cast<A3*>(a11.getA1_4()) == a11.getA3()); 1138 assert(dynamic_cast<A3*>(a11.getA1_6()) == a11.getA3()); 1139 assert(dynamic_cast<A3*>(a11.getA1_9()) == a11.getA3()); 1140 assert(dynamic_cast<A3*>(a11.getA2()) == a11.getA3()); 1141 1142 assert(dynamic_cast<A4*>(a11.getA1_3()) == 0); 1143 assert(dynamic_cast<A4*>(a11.getA1_4()) == a11.getA4()); 1144 assert(dynamic_cast<A4*>(a11.getA1_6()) == a11.getA4()); 1145 assert(dynamic_cast<A4*>(a11.getA1_9()) == a11.getA4()); 1146 assert(dynamic_cast<A4*>(a11.getA2()) == a11.getA4()); 1147 assert(dynamic_cast<A4*>(a11.getA3()) == a11.getA4()); 1148 1149 assert(dynamic_cast<A5*>(a11.getA1_3()) == 0); 1150 assert(dynamic_cast<A5*>(a11.getA1_4()) == a11.getA5()); 1151 assert(dynamic_cast<A5*>(a11.getA1_6()) == a11.getA5()); 1152 assert(dynamic_cast<A5*>(a11.getA1_9()) == a11.getA5()); 1153 assert(dynamic_cast<A5*>(a11.getA2()) == a11.getA5()); 1154 assert(dynamic_cast<A5*>(a11.getA3()) == a11.getA5()); 1155 assert(dynamic_cast<A5*>(a11.getA4()) == a11.getA5()); 1156 1157 assert(dynamic_cast<A6*>(a11.getA1_3()) == 0); 1158 assert(dynamic_cast<A6*>(a11.getA1_4()) == a11.getA6()); 1159 assert(dynamic_cast<A6*>(a11.getA1_6()) == a11.getA6()); 1160 assert(dynamic_cast<A6*>(a11.getA1_9()) == a11.getA6()); 1161 assert(dynamic_cast<A6*>(a11.getA2()) == a11.getA6()); 1162 assert(dynamic_cast<A6*>(a11.getA3()) == a11.getA6()); 1163 assert(dynamic_cast<A6*>(a11.getA4()) == a11.getA6()); 1164 assert(dynamic_cast<A6*>(a11.getA5()) == a11.getA6()); 1165 1166 assert(dynamic_cast<A7*>(a11.getA1_3()) == 0); 1167 assert(dynamic_cast<A7*>(a11.getA1_4()) == a11.getA7()); 1168 assert(dynamic_cast<A7*>(a11.getA1_6()) == a11.getA7()); 1169 assert(dynamic_cast<A7*>(a11.getA1_9()) == a11.getA7()); 1170 assert(dynamic_cast<A7*>(a11.getA2()) == a11.getA7()); 1171 assert(dynamic_cast<A7*>(a11.getA3()) == a11.getA7()); 1172 assert(dynamic_cast<A7*>(a11.getA4()) == a11.getA7()); 1173 assert(dynamic_cast<A7*>(a11.getA5()) == a11.getA7()); 1174 assert(dynamic_cast<A7*>(a11.getA6()) == a11.getA7()); 1175 1176 assert(dynamic_cast<A8*>(a11.getA1_3()) == 0); 1177 assert(dynamic_cast<A8*>(a11.getA1_4()) == a11.getA8()); 1178 assert(dynamic_cast<A8*>(a11.getA1_6()) == a11.getA8()); 1179 assert(dynamic_cast<A8*>(a11.getA1_9()) == a11.getA8()); 1180 assert(dynamic_cast<A8*>(a11.getA2()) == a11.getA8()); 1181 assert(dynamic_cast<A8*>(a11.getA3()) == a11.getA8()); 1182 assert(dynamic_cast<A8*>(a11.getA4()) == a11.getA8()); 1183 assert(dynamic_cast<A8*>(a11.getA5()) == a11.getA8()); 1184 assert(dynamic_cast<A8*>(a11.getA6()) == a11.getA8()); 1185 assert(dynamic_cast<A8*>(a11.getA7()) == a11.getA8()); 1186 1187 assert(dynamic_cast<A9*>(a11.getA1_3()) == 0); 1188 assert(dynamic_cast<A9*>(a11.getA1_4()) == a11.getA9()); 1189 assert(dynamic_cast<A9*>(a11.getA1_6()) == a11.getA9()); 1190 assert(dynamic_cast<A9*>(a11.getA1_9()) == a11.getA9()); 1191 assert(dynamic_cast<A9*>(a11.getA2()) == a11.getA9()); 1192 assert(dynamic_cast<A9*>(a11.getA3()) == a11.getA9()); 1193 assert(dynamic_cast<A9*>(a11.getA4()) == a11.getA9()); 1194 assert(dynamic_cast<A9*>(a11.getA5()) == a11.getA9()); 1195 assert(dynamic_cast<A9*>(a11.getA6()) == a11.getA9()); 1196 assert(dynamic_cast<A9*>(a11.getA7()) == a11.getA9()); 1197 assert(dynamic_cast<A9*>(a11.getA8()) == a11.getA9()); 1198 1199 assert(dynamic_cast<A10*>(a11.getA1_3()) == 0); 1200 assert(dynamic_cast<A10*>(a11.getA1_4()) == 0); 1201 assert(dynamic_cast<A10*>(a11.getA1_6()) == 0); 1202 assert(dynamic_cast<A10*>(a11.getA1_9()) == 0); 1203 assert(dynamic_cast<A10*>(a11.getA2()) == 0); 1204 assert(dynamic_cast<A10*>(a11.getA3()) == 0); 1205 assert(dynamic_cast<A10*>(a11.getA4()) == 0); 1206 assert(dynamic_cast<A10*>(a11.getA5()) == 0); 1207 assert(dynamic_cast<A10*>(a11.getA6()) == 0); 1208 assert(dynamic_cast<A10*>(a11.getA7()) == 0); 1209 assert(dynamic_cast<A10*>(a11.getA8()) == 0); 1210 assert(dynamic_cast<A10*>(a11.getA9()) == 0); 1211 1212 assert(dynamic_cast<A11*>(a11.getA1_3()) == 0); 1213 assert(dynamic_cast<A11*>(a11.getA1_4()) == a11.getA11()); 1214 assert(dynamic_cast<A11*>(a11.getA1_6()) == a11.getA11()); 1215 assert(dynamic_cast<A11*>(a11.getA1_9()) == a11.getA11()); 1216 assert(dynamic_cast<A11*>(a11.getA2()) == a11.getA11()); 1217 assert(dynamic_cast<A11*>(a11.getA3()) == a11.getA11()); 1218 assert(dynamic_cast<A11*>(a11.getA4()) == a11.getA11()); 1219 assert(dynamic_cast<A11*>(a11.getA5()) == a11.getA11()); 1220 assert(dynamic_cast<A11*>(a11.getA6()) == a11.getA11()); 1221 assert(dynamic_cast<A11*>(a11.getA7()) == a11.getA11()); 1222 assert(dynamic_cast<A11*>(a11.getA8()) == a11.getA11()); 1223 assert(dynamic_cast<A11*>(a11.getA9()) == a11.getA11()); 1224 1225 assert(dynamic_cast<A3*>(a12.getA1_3()) == 0); 1226 assert(dynamic_cast<A3*>(a12.getA1_4()) == a12.getA3()); 1227 assert(dynamic_cast<A3*>(a12.getA1_6()) == a12.getA3()); 1228 assert(dynamic_cast<A3*>(a12.getA1_9()) == a12.getA3()); 1229 assert(dynamic_cast<A3*>(a12.getA2()) == a12.getA3()); 1230 1231 assert(dynamic_cast<A4*>(a12.getA1_3()) == 0); 1232 assert(dynamic_cast<A4*>(a12.getA1_4()) == a12.getA4()); 1233 assert(dynamic_cast<A4*>(a12.getA1_6()) == a12.getA4()); 1234 assert(dynamic_cast<A4*>(a12.getA1_9()) == a12.getA4()); 1235 assert(dynamic_cast<A4*>(a12.getA2()) == a12.getA4()); 1236 assert(dynamic_cast<A4*>(a12.getA3()) == a12.getA4()); 1237 1238 assert(dynamic_cast<A5*>(a12.getA1_3()) == 0); 1239 assert(dynamic_cast<A5*>(a12.getA1_4()) == a12.getA5()); 1240 assert(dynamic_cast<A5*>(a12.getA1_6()) == a12.getA5()); 1241 assert(dynamic_cast<A5*>(a12.getA1_9()) == a12.getA5()); 1242 assert(dynamic_cast<A5*>(a12.getA2()) == a12.getA5()); 1243 assert(dynamic_cast<A5*>(a12.getA3()) == a12.getA5()); 1244 assert(dynamic_cast<A5*>(a12.getA4()) == a12.getA5()); 1245 1246 assert(dynamic_cast<A6*>(a12.getA1_3()) == 0); 1247 assert(dynamic_cast<A6*>(a12.getA1_4()) == a12.getA6()); 1248 assert(dynamic_cast<A6*>(a12.getA1_6()) == a12.getA6()); 1249 assert(dynamic_cast<A6*>(a12.getA1_9()) == a12.getA6()); 1250 assert(dynamic_cast<A6*>(a12.getA2()) == a12.getA6()); 1251 assert(dynamic_cast<A6*>(a12.getA3()) == a12.getA6()); 1252 assert(dynamic_cast<A6*>(a12.getA4()) == a12.getA6()); 1253 assert(dynamic_cast<A6*>(a12.getA5()) == a12.getA6()); 1254 1255 assert(dynamic_cast<A7*>(a12.getA1_3()) == 0); 1256 assert(dynamic_cast<A7*>(a12.getA1_4()) == a12.getA7()); 1257 assert(dynamic_cast<A7*>(a12.getA1_6()) == a12.getA7()); 1258 assert(dynamic_cast<A7*>(a12.getA1_9()) == a12.getA7()); 1259 assert(dynamic_cast<A7*>(a12.getA2()) == a12.getA7()); 1260 assert(dynamic_cast<A7*>(a12.getA3()) == a12.getA7()); 1261 assert(dynamic_cast<A7*>(a12.getA4()) == a12.getA7()); 1262 assert(dynamic_cast<A7*>(a12.getA5()) == a12.getA7()); 1263 assert(dynamic_cast<A7*>(a12.getA6()) == a12.getA7()); 1264 1265 assert(dynamic_cast<A8*>(a12.getA1_3()) == 0); 1266 assert(dynamic_cast<A8*>(a12.getA1_4()) == a12.getA8()); 1267 assert(dynamic_cast<A8*>(a12.getA1_6()) == a12.getA8()); 1268 assert(dynamic_cast<A8*>(a12.getA1_9()) == a12.getA8()); 1269 assert(dynamic_cast<A8*>(a12.getA2()) == a12.getA8()); 1270 assert(dynamic_cast<A8*>(a12.getA3()) == a12.getA8()); 1271 assert(dynamic_cast<A8*>(a12.getA4()) == a12.getA8()); 1272 assert(dynamic_cast<A8*>(a12.getA5()) == a12.getA8()); 1273 assert(dynamic_cast<A8*>(a12.getA6()) == a12.getA8()); 1274 assert(dynamic_cast<A8*>(a12.getA7()) == a12.getA8()); 1275 1276 assert(dynamic_cast<A9*>(a12.getA1_3()) == 0); 1277 assert(dynamic_cast<A9*>(a12.getA1_4()) == a12.getA9()); 1278 assert(dynamic_cast<A9*>(a12.getA1_6()) == a12.getA9()); 1279 assert(dynamic_cast<A9*>(a12.getA1_9()) == a12.getA9()); 1280 assert(dynamic_cast<A9*>(a12.getA2()) == a12.getA9()); 1281 assert(dynamic_cast<A9*>(a12.getA3()) == a12.getA9()); 1282 assert(dynamic_cast<A9*>(a12.getA4()) == a12.getA9()); 1283 assert(dynamic_cast<A9*>(a12.getA5()) == a12.getA9()); 1284 assert(dynamic_cast<A9*>(a12.getA6()) == a12.getA9()); 1285 assert(dynamic_cast<A9*>(a12.getA7()) == a12.getA9()); 1286 assert(dynamic_cast<A9*>(a12.getA8()) == a12.getA9()); 1287 1288 assert(dynamic_cast<A10*>(a12.getA1_3()) == 0); 1289 assert(dynamic_cast<A10*>(a12.getA1_4()) == a12.getA10()); 1290 assert(dynamic_cast<A10*>(a12.getA1_6()) == a12.getA10()); 1291 assert(dynamic_cast<A10*>(a12.getA1_9()) == a12.getA10()); 1292 assert(dynamic_cast<A10*>(a12.getA2()) == a12.getA10()); 1293 assert(dynamic_cast<A10*>(a12.getA3()) == a12.getA10()); 1294 assert(dynamic_cast<A10*>(a12.getA4()) == a12.getA10()); 1295 assert(dynamic_cast<A10*>(a12.getA5()) == a12.getA10()); 1296 assert(dynamic_cast<A10*>(a12.getA6()) == a12.getA10()); 1297 assert(dynamic_cast<A10*>(a12.getA7()) == a12.getA10()); 1298 assert(dynamic_cast<A10*>(a12.getA8()) == a12.getA10()); 1299 assert(dynamic_cast<A10*>(a12.getA9()) == a12.getA10()); 1300 1301 assert(dynamic_cast<A11*>(a12.getA1_3()) == 0); 1302 assert(dynamic_cast<A11*>(a12.getA1_4()) == a12.getA11()); 1303 assert(dynamic_cast<A11*>(a12.getA1_6()) == a12.getA11()); 1304 assert(dynamic_cast<A11*>(a12.getA1_9()) == a12.getA11()); 1305 assert(dynamic_cast<A11*>(a12.getA2()) == a12.getA11()); 1306 assert(dynamic_cast<A11*>(a12.getA3()) == a12.getA11()); 1307 assert(dynamic_cast<A11*>(a12.getA4()) == a12.getA11()); 1308 assert(dynamic_cast<A11*>(a12.getA5()) == a12.getA11()); 1309 assert(dynamic_cast<A11*>(a12.getA6()) == a12.getA11()); 1310 assert(dynamic_cast<A11*>(a12.getA7()) == a12.getA11()); 1311 assert(dynamic_cast<A11*>(a12.getA8()) == a12.getA11()); 1312 assert(dynamic_cast<A11*>(a12.getA9()) == a12.getA11()); 1313 assert(dynamic_cast<A11*>(a12.getA10()) == a12.getA11()); 1314 1315 assert(dynamic_cast<A12*>(a12.getA1_3()) == 0); 1316 assert(dynamic_cast<A12*>(a12.getA1_4()) == a12.getA12()); 1317 assert(dynamic_cast<A12*>(a12.getA1_6()) == a12.getA12()); 1318 assert(dynamic_cast<A12*>(a12.getA1_9()) == a12.getA12()); 1319 assert(dynamic_cast<A12*>(a12.getA2()) == a12.getA12()); 1320 assert(dynamic_cast<A12*>(a12.getA3()) == a12.getA12()); 1321 assert(dynamic_cast<A12*>(a12.getA4()) == a12.getA12()); 1322 assert(dynamic_cast<A12*>(a12.getA5()) == a12.getA12()); 1323 assert(dynamic_cast<A12*>(a12.getA6()) == a12.getA12()); 1324 assert(dynamic_cast<A12*>(a12.getA7()) == a12.getA12()); 1325 assert(dynamic_cast<A12*>(a12.getA8()) == a12.getA12()); 1326 assert(dynamic_cast<A12*>(a12.getA9()) == a12.getA12()); 1327 assert(dynamic_cast<A12*>(a12.getA10()) == a12.getA12()); 1328 assert(dynamic_cast<A12*>(a12.getA11()) == a12.getA12()); 1329 1330 assert(dynamic_cast<A3*>(a13.getA1_3()) == 0); 1331 assert(dynamic_cast<A3*>(a13.getA1_4()) == a13.getA3()); 1332 assert(dynamic_cast<A3*>(a13.getA1_6()) == a13.getA3()); 1333 assert(dynamic_cast<A3*>(a13.getA1_9()) == a13.getA3()); 1334 assert(dynamic_cast<A3*>(a13.getA2()) == a13.getA3()); 1335 1336 assert(dynamic_cast<A4*>(a13.getA1_3()) == 0); 1337 assert(dynamic_cast<A4*>(a13.getA1_4()) == a13.getA4()); 1338 assert(dynamic_cast<A4*>(a13.getA1_6()) == a13.getA4()); 1339 assert(dynamic_cast<A4*>(a13.getA1_9()) == a13.getA4()); 1340 assert(dynamic_cast<A4*>(a13.getA2()) == a13.getA4()); 1341 assert(dynamic_cast<A4*>(a13.getA3()) == a13.getA4()); 1342 1343 assert(dynamic_cast<A5*>(a13.getA1_3()) == 0); 1344 assert(dynamic_cast<A5*>(a13.getA1_4()) == a13.getA5()); 1345 assert(dynamic_cast<A5*>(a13.getA1_6()) == a13.getA5()); 1346 assert(dynamic_cast<A5*>(a13.getA1_9()) == a13.getA5()); 1347 assert(dynamic_cast<A5*>(a13.getA2()) == a13.getA5()); 1348 assert(dynamic_cast<A5*>(a13.getA3()) == a13.getA5()); 1349 assert(dynamic_cast<A5*>(a13.getA4()) == a13.getA5()); 1350 1351 assert(dynamic_cast<A6*>(a13.getA1_3()) == 0); 1352 assert(dynamic_cast<A6*>(a13.getA1_4()) == a13.getA6()); 1353 assert(dynamic_cast<A6*>(a13.getA1_6()) == a13.getA6()); 1354 assert(dynamic_cast<A6*>(a13.getA1_9()) == a13.getA6()); 1355 assert(dynamic_cast<A6*>(a13.getA2()) == a13.getA6()); 1356 assert(dynamic_cast<A6*>(a13.getA3()) == a13.getA6()); 1357 assert(dynamic_cast<A6*>(a13.getA4()) == a13.getA6()); 1358 assert(dynamic_cast<A6*>(a13.getA5()) == a13.getA6()); 1359 1360 assert(dynamic_cast<A7*>(a13.getA1_3()) == 0); 1361 assert(dynamic_cast<A7*>(a13.getA1_4()) == a13.getA7()); 1362 assert(dynamic_cast<A7*>(a13.getA1_6()) == a13.getA7()); 1363 assert(dynamic_cast<A7*>(a13.getA1_9()) == a13.getA7()); 1364 assert(dynamic_cast<A7*>(a13.getA2()) == a13.getA7()); 1365 assert(dynamic_cast<A7*>(a13.getA3()) == a13.getA7()); 1366 assert(dynamic_cast<A7*>(a13.getA4()) == a13.getA7()); 1367 assert(dynamic_cast<A7*>(a13.getA5()) == a13.getA7()); 1368 assert(dynamic_cast<A7*>(a13.getA6()) == a13.getA7()); 1369 1370 assert(dynamic_cast<A8*>(a13.getA1_3()) == 0); 1371 assert(dynamic_cast<A8*>(a13.getA1_4()) == a13.getA8()); 1372 assert(dynamic_cast<A8*>(a13.getA1_6()) == a13.getA8()); 1373 assert(dynamic_cast<A8*>(a13.getA1_9()) == a13.getA8()); 1374 assert(dynamic_cast<A8*>(a13.getA2()) == a13.getA8()); 1375 assert(dynamic_cast<A8*>(a13.getA3()) == a13.getA8()); 1376 assert(dynamic_cast<A8*>(a13.getA4()) == a13.getA8()); 1377 assert(dynamic_cast<A8*>(a13.getA5()) == a13.getA8()); 1378 assert(dynamic_cast<A8*>(a13.getA6()) == a13.getA8()); 1379 assert(dynamic_cast<A8*>(a13.getA7()) == a13.getA8()); 1380 1381 assert(dynamic_cast<A9*>(a13.getA1_3()) == 0); 1382 assert(dynamic_cast<A9*>(a13.getA1_4()) == a13.getA9()); 1383 assert(dynamic_cast<A9*>(a13.getA1_6()) == a13.getA9()); 1384 assert(dynamic_cast<A9*>(a13.getA1_9()) == a13.getA9()); 1385 assert(dynamic_cast<A9*>(a13.getA2()) == a13.getA9()); 1386 assert(dynamic_cast<A9*>(a13.getA3()) == a13.getA9()); 1387 assert(dynamic_cast<A9*>(a13.getA4()) == a13.getA9()); 1388 assert(dynamic_cast<A9*>(a13.getA5()) == a13.getA9()); 1389 assert(dynamic_cast<A9*>(a13.getA6()) == a13.getA9()); 1390 assert(dynamic_cast<A9*>(a13.getA7()) == a13.getA9()); 1391 assert(dynamic_cast<A9*>(a13.getA8()) == a13.getA9()); 1392 1393 assert(dynamic_cast<A10*>(a13.getA1_3()) == 0); 1394 assert(dynamic_cast<A10*>(a13.getA1_4()) == a13.getA10()); 1395 assert(dynamic_cast<A10*>(a13.getA1_6()) == a13.getA10()); 1396 assert(dynamic_cast<A10*>(a13.getA1_9()) == a13.getA10()); 1397 assert(dynamic_cast<A10*>(a13.getA2()) == a13.getA10()); 1398 assert(dynamic_cast<A10*>(a13.getA3()) == a13.getA10()); 1399 assert(dynamic_cast<A10*>(a13.getA4()) == a13.getA10()); 1400 assert(dynamic_cast<A10*>(a13.getA5()) == a13.getA10()); 1401 assert(dynamic_cast<A10*>(a13.getA6()) == a13.getA10()); 1402 assert(dynamic_cast<A10*>(a13.getA7()) == a13.getA10()); 1403 assert(dynamic_cast<A10*>(a13.getA8()) == a13.getA10()); 1404 assert(dynamic_cast<A10*>(a13.getA9()) == a13.getA10()); 1405 1406 assert(dynamic_cast<A11*>(a13.getA1_3()) == 0); 1407 assert(dynamic_cast<A11*>(a13.getA1_4()) == a13.getA11()); 1408 assert(dynamic_cast<A11*>(a13.getA1_6()) == a13.getA11()); 1409 assert(dynamic_cast<A11*>(a13.getA1_9()) == a13.getA11()); 1410 assert(dynamic_cast<A11*>(a13.getA2()) == a13.getA11()); 1411 assert(dynamic_cast<A11*>(a13.getA3()) == a13.getA11()); 1412 assert(dynamic_cast<A11*>(a13.getA4()) == a13.getA11()); 1413 assert(dynamic_cast<A11*>(a13.getA5()) == a13.getA11()); 1414 assert(dynamic_cast<A11*>(a13.getA6()) == a13.getA11()); 1415 assert(dynamic_cast<A11*>(a13.getA7()) == a13.getA11()); 1416 assert(dynamic_cast<A11*>(a13.getA8()) == a13.getA11()); 1417 assert(dynamic_cast<A11*>(a13.getA9()) == a13.getA11()); 1418 assert(dynamic_cast<A11*>(a13.getA10()) == a13.getA11()); 1419 1420 assert(dynamic_cast<A12*>(a13.getA1_3()) == 0); 1421 assert(dynamic_cast<A12*>(a13.getA1_4()) == a13.getA12()); 1422 assert(dynamic_cast<A12*>(a13.getA1_6()) == a13.getA12()); 1423 assert(dynamic_cast<A12*>(a13.getA1_9()) == a13.getA12()); 1424 assert(dynamic_cast<A12*>(a13.getA2()) == a13.getA12()); 1425 assert(dynamic_cast<A12*>(a13.getA3()) == a13.getA12()); 1426 assert(dynamic_cast<A12*>(a13.getA4()) == a13.getA12()); 1427 assert(dynamic_cast<A12*>(a13.getA5()) == a13.getA12()); 1428 assert(dynamic_cast<A12*>(a13.getA6()) == a13.getA12()); 1429 assert(dynamic_cast<A12*>(a13.getA7()) == a13.getA12()); 1430 assert(dynamic_cast<A12*>(a13.getA8()) == a13.getA12()); 1431 assert(dynamic_cast<A12*>(a13.getA9()) == a13.getA12()); 1432 assert(dynamic_cast<A12*>(a13.getA10()) == a13.getA12()); 1433 assert(dynamic_cast<A12*>(a13.getA11()) == a13.getA12()); 1434 1435 assert(dynamic_cast<A13*>(a13.getA1_3()) == 0); 1436 assert(dynamic_cast<A13*>(a13.getA1_4()) == a13.getA13()); 1437 assert(dynamic_cast<A13*>(a13.getA1_6()) == a13.getA13()); 1438 assert(dynamic_cast<A13*>(a13.getA1_9()) == a13.getA13()); 1439 assert(dynamic_cast<A13*>(a13.getA2()) == a13.getA13()); 1440 assert(dynamic_cast<A13*>(a13.getA3()) == a13.getA13()); 1441 assert(dynamic_cast<A13*>(a13.getA4()) == a13.getA13()); 1442 assert(dynamic_cast<A13*>(a13.getA5()) == a13.getA13()); 1443 assert(dynamic_cast<A13*>(a13.getA6()) == a13.getA13()); 1444 assert(dynamic_cast<A13*>(a13.getA7()) == a13.getA13()); 1445 assert(dynamic_cast<A13*>(a13.getA8()) == a13.getA13()); 1446 assert(dynamic_cast<A13*>(a13.getA9()) == a13.getA13()); 1447 assert(dynamic_cast<A13*>(a13.getA10()) == a13.getA13()); 1448 assert(dynamic_cast<A13*>(a13.getA11()) == a13.getA13()); 1449 assert(dynamic_cast<A13*>(a13.getA12()) == a13.getA13()); 1450 } 1451 1452 } // t2 1453 1454 namespace t3 1455 { 1456 1457 struct A1 1458 { 1459 char _[43981]; 1460 virtual ~A1() {} 1461 1462 A1* getA1() {return this;} 1463 }; 1464 1465 struct A2 1466 { 1467 char _[34981]; 1468 virtual ~A2() {} 1469 1470 A2* getA2() {return this;} 1471 }; 1472 1473 struct A3 1474 : public A1, 1475 protected virtual A2 1476 { 1477 char _[93481]; 1478 virtual ~A3() {} 1479 1480 A1* getA1_3() {return A1::getA1();} 1481 A2* getA2() {return A2::getA2();} 1482 A3* getA3() {return this;} 1483 }; 1484 1485 struct A4 1486 : public virtual A2, 1487 public A1 1488 { 1489 char _[13489]; 1490 virtual ~A4() {} 1491 1492 A1* getA1_4() {return A1::getA1();} 1493 A2* getA2() {return A2::getA2();} 1494 A4* getA4() {return this;} 1495 }; 1496 1497 struct A5 1498 : public A3, 1499 public A4 1500 { 1501 char _[13489]; 1502 virtual ~A5() {} 1503 1504 A1* getA1_3() {return A3::getA1();} 1505 A1* getA1_4() {return A4::getA1();} 1506 A2* getA2() {return A3::getA2();} 1507 A3* getA3() {return A3::getA3();} 1508 A4* getA4() {return A4::getA4();} 1509 A5* getA5() {return this;} 1510 }; 1511 1512 struct A6 1513 : public A1 1514 { 1515 char _[81349]; 1516 virtual ~A6() {} 1517 1518 A1* getA1_6() {return A1::getA1();} 1519 A6* getA6() {return this;} 1520 }; 1521 1522 struct A7 1523 : public A5, 1524 public A6 1525 { 1526 char _[34819]; 1527 virtual ~A7() {} 1528 1529 A1* getA1_3() {return A5::getA1_3();} 1530 A1* getA1_4() {return A5::getA1_4();} 1531 A1* getA1_6() {return A6::getA1_6();} 1532 A2* getA2() {return A5::getA2();} 1533 A3* getA3() {return A5::getA3();} 1534 A4* getA4() {return A5::getA4();} 1535 A5* getA5() {return A5::getA5();} 1536 A6* getA6() {return A6::getA6();} 1537 A7* getA7() {return this;} 1538 }; 1539 1540 struct A8 1541 : public A7 1542 { 1543 char _[3489]; 1544 virtual ~A8() {} 1545 1546 A1* getA1_3() {return A7::getA1_3();} 1547 A1* getA1_4() {return A7::getA1_4();} 1548 A1* getA1_6() {return A7::getA1_6();} 1549 A2* getA2() {return A7::getA2();} 1550 A3* getA3() {return A7::getA3();} 1551 A4* getA4() {return A7::getA4();} 1552 A5* getA5() {return A7::getA5();} 1553 A6* getA6() {return A7::getA6();} 1554 A7* getA7() {return A7::getA7();} 1555 A8* getA8() {return this;} 1556 }; 1557 1558 struct A9 1559 : public A1 1560 { 1561 char _[3481]; 1562 virtual ~A9() {} 1563 1564 A1* getA1_9() {return A1::getA1();} 1565 A9* getA9() {return this;} 1566 }; 1567 1568 struct A10 1569 : public virtual A8 1570 { 1571 char _[4831]; 1572 virtual ~A10() {} 1573 1574 A1* getA1_3() {return A8::getA1_3();} 1575 A1* getA1_4() {return A8::getA1_4();} 1576 A1* getA1_6() {return A8::getA1_6();} 1577 A2* getA2() {return A8::getA2();} 1578 A3* getA3() {return A8::getA3();} 1579 A4* getA4() {return A8::getA4();} 1580 A5* getA5() {return A8::getA5();} 1581 A6* getA6() {return A8::getA6();} 1582 A7* getA7() {return A8::getA7();} 1583 A8* getA8() {return A8::getA8();} 1584 A10* getA10() {return this;} 1585 }; 1586 1587 struct A11 1588 : public virtual A8, 1589 public A9 1590 { 1591 char _[6483]; 1592 virtual ~A11() {} 1593 1594 A1* getA1_3() {return A8::getA1_3();} 1595 A1* getA1_4() {return A8::getA1_4();} 1596 A1* getA1_6() {return A8::getA1_6();} 1597 A1* getA1_9() {return A9::getA1_9();} 1598 A2* getA2() {return A8::getA2();} 1599 A3* getA3() {return A8::getA3();} 1600 A4* getA4() {return A8::getA4();} 1601 A5* getA5() {return A8::getA5();} 1602 A6* getA6() {return A8::getA6();} 1603 A7* getA7() {return A8::getA7();} 1604 A8* getA8() {return A8::getA8();} 1605 A9* getA9() {return A9::getA9();} 1606 A11* getA11() {return this;} 1607 }; 1608 1609 struct A12 1610 : public A10, 1611 public A11 1612 { 1613 char _[2283]; 1614 virtual ~A12() {} 1615 1616 A1* getA1_3() {return A10::getA1_3();} 1617 A1* getA1_4() {return A10::getA1_4();} 1618 A1* getA1_6() {return A10::getA1_6();} 1619 A1* getA1_9() {return A11::getA1_9();} 1620 A2* getA2() {return A10::getA2();} 1621 A3* getA3() {return A10::getA3();} 1622 A4* getA4() {return A10::getA4();} 1623 A5* getA5() {return A10::getA5();} 1624 A6* getA6() {return A10::getA6();} 1625 A7* getA7() {return A10::getA7();} 1626 A8* getA8() {return A10::getA8();} 1627 A9* getA9() {return A11::getA9();} 1628 A10* getA10() {return A10::getA10();} 1629 A11* getA11() {return A11::getA11();} 1630 A12* getA12() {return this;} 1631 }; 1632 1633 struct A13 1634 : public A12 1635 { 1636 char _[1283]; 1637 virtual ~A13() {} 1638 1639 A1* getA1_3() {return A12::getA1_3();} 1640 A1* getA1_4() {return A12::getA1_4();} 1641 A1* getA1_6() {return A12::getA1_6();} 1642 A1* getA1_9() {return A12::getA1_9();} 1643 A2* getA2() {return A12::getA2();} 1644 A3* getA3() {return A12::getA3();} 1645 A4* getA4() {return A12::getA4();} 1646 A5* getA5() {return A12::getA5();} 1647 A6* getA6() {return A12::getA6();} 1648 A7* getA7() {return A12::getA7();} 1649 A8* getA8() {return A12::getA8();} 1650 A9* getA9() {return A12::getA9();} 1651 A10* getA10() {return A12::getA10();} 1652 A11* getA11() {return A12::getA11();} 1653 A12* getA12() {return A12::getA12();} 1654 A13* getA13() {return this;} 1655 }; 1656 1657 void test() 1658 { 1659 A3 a3; 1660 A4 a4; 1661 A5 a5; 1662 A6 a6; 1663 A7 a7; 1664 A8 a8; 1665 A9 a9; 1666 A10 a10; 1667 A11 a11; 1668 A12 a12; 1669 A13 a13; 1670 1671 assert(dynamic_cast<A3*>(a3.getA1_3()) == a3.getA3()); 1672 assert(dynamic_cast<A3*>(a3.getA2()) == 0); 1673 1674 assert(dynamic_cast<A3*>(a4.getA1_4()) == 0); 1675 assert(dynamic_cast<A3*>(a4.getA2()) == 0); 1676 assert(dynamic_cast<A4*>(a4.getA1_4()) == a4.getA4()); 1677 assert(dynamic_cast<A4*>(a4.getA2()) == a4.getA4()); 1678 1679 assert(dynamic_cast<A3*>(a5.getA1_3()) == a5.getA3()); 1680 assert(dynamic_cast<A3*>(a5.getA2()) == a5.getA3()); 1681 1682 assert(dynamic_cast<A4*>(a5.getA1_3()) == a5.getA4()); 1683 assert(dynamic_cast<A4*>(a5.getA1_4()) == a5.getA4()); 1684 assert(dynamic_cast<A4*>(a5.getA3()) == a5.getA4()); 1685 assert(dynamic_cast<A4*>(a5.getA3()) == a5.getA4()); 1686 1687 assert(dynamic_cast<A5*>(a5.getA1_3()) == a5.getA5()); 1688 assert(dynamic_cast<A5*>(a5.getA1_4()) == a5.getA5()); 1689 assert(dynamic_cast<A5*>(a5.getA3()) == a5.getA5()); 1690 assert(dynamic_cast<A5*>(a5.getA3()) == a5.getA5()); 1691 assert(dynamic_cast<A5*>(a5.getA3()) == a5.getA5()); 1692 assert(dynamic_cast<A5*>(a5.getA4()) == a5.getA5()); 1693 1694 assert(dynamic_cast<A3*>(a6.getA1_6()) == 0); 1695 1696 assert(dynamic_cast<A4*>(a6.getA1_6()) == 0); 1697 1698 assert(dynamic_cast<A5*>(a6.getA1_6()) == 0); 1699 1700 assert(dynamic_cast<A6*>(a6.getA1_6()) == a6.getA6()); 1701 1702 assert(dynamic_cast<A3*>(a7.getA1_3()) == a7.getA3()); 1703 assert(dynamic_cast<A3*>(a7.getA1_4()) == a7.getA3()); 1704 assert(dynamic_cast<A3*>(a7.getA2()) == a7.getA3()); 1705 1706 assert(dynamic_cast<A4*>(a7.getA1_3()) == a7.getA4()); 1707 assert(dynamic_cast<A4*>(a7.getA1_4()) == a7.getA4()); 1708 assert(dynamic_cast<A4*>(a7.getA2()) == a7.getA4()); 1709 assert(dynamic_cast<A4*>(a7.getA3()) == a7.getA4()); 1710 1711 assert(dynamic_cast<A5*>(a7.getA1_3()) == a7.getA5()); 1712 assert(dynamic_cast<A5*>(a7.getA1_4()) == a7.getA5()); 1713 assert(dynamic_cast<A5*>(a7.getA2()) == a7.getA5()); 1714 assert(dynamic_cast<A5*>(a7.getA3()) == a7.getA5()); 1715 assert(dynamic_cast<A5*>(a7.getA4()) == a7.getA5()); 1716 1717 assert(dynamic_cast<A6*>(a7.getA1_3()) == a7.getA6()); 1718 assert(dynamic_cast<A6*>(a7.getA1_4()) == a7.getA6()); 1719 assert(dynamic_cast<A6*>(a7.getA1_6()) == a7.getA6()); 1720 assert(dynamic_cast<A6*>(a7.getA2()) == a7.getA6()); 1721 assert(dynamic_cast<A6*>(a7.getA3()) == a7.getA6()); 1722 assert(dynamic_cast<A6*>(a7.getA4()) == a7.getA6()); 1723 assert(dynamic_cast<A6*>(a7.getA5()) == a7.getA6()); 1724 1725 assert(dynamic_cast<A7*>(a7.getA1_3()) == a7.getA7()); 1726 assert(dynamic_cast<A7*>(a7.getA1_4()) == a7.getA7()); 1727 assert(dynamic_cast<A7*>(a7.getA1_6()) == a7.getA7()); 1728 assert(dynamic_cast<A7*>(a7.getA2()) == a7.getA7()); 1729 assert(dynamic_cast<A7*>(a7.getA3()) == a7.getA7()); 1730 assert(dynamic_cast<A7*>(a7.getA4()) == a7.getA7()); 1731 assert(dynamic_cast<A7*>(a7.getA5()) == a7.getA7()); 1732 assert(dynamic_cast<A7*>(a7.getA6()) == a7.getA7()); 1733 1734 assert(dynamic_cast<A3*>(a8.getA1_3()) == a8.getA3()); 1735 assert(dynamic_cast<A3*>(a8.getA1_4()) == a8.getA3()); 1736 assert(dynamic_cast<A3*>(a8.getA2()) == a8.getA3()); 1737 1738 assert(dynamic_cast<A4*>(a8.getA1_3()) == a8.getA4()); 1739 assert(dynamic_cast<A4*>(a8.getA1_4()) == a8.getA4()); 1740 assert(dynamic_cast<A4*>(a8.getA2()) == a8.getA4()); 1741 assert(dynamic_cast<A4*>(a8.getA3()) == a8.getA4()); 1742 1743 assert(dynamic_cast<A5*>(a8.getA1_3()) == a8.getA5()); 1744 assert(dynamic_cast<A5*>(a8.getA1_4()) == a8.getA5()); 1745 assert(dynamic_cast<A5*>(a8.getA2()) == a8.getA5()); 1746 assert(dynamic_cast<A5*>(a8.getA3()) == a8.getA5()); 1747 assert(dynamic_cast<A5*>(a8.getA4()) == a8.getA5()); 1748 1749 assert(dynamic_cast<A6*>(a8.getA1_3()) == a8.getA6()); 1750 assert(dynamic_cast<A6*>(a8.getA1_4()) == a8.getA6()); 1751 assert(dynamic_cast<A6*>(a8.getA1_6()) == a8.getA6()); 1752 assert(dynamic_cast<A6*>(a8.getA2()) == a8.getA6()); 1753 assert(dynamic_cast<A6*>(a8.getA3()) == a8.getA6()); 1754 assert(dynamic_cast<A6*>(a8.getA4()) == a8.getA6()); 1755 assert(dynamic_cast<A6*>(a8.getA5()) == a8.getA6()); 1756 1757 assert(dynamic_cast<A7*>(a8.getA1_3()) == a8.getA7()); 1758 assert(dynamic_cast<A7*>(a8.getA1_4()) == a8.getA7()); 1759 assert(dynamic_cast<A7*>(a8.getA1_6()) == a8.getA7()); 1760 assert(dynamic_cast<A7*>(a8.getA2()) == a8.getA7()); 1761 assert(dynamic_cast<A7*>(a8.getA3()) == a8.getA7()); 1762 assert(dynamic_cast<A7*>(a8.getA4()) == a8.getA7()); 1763 assert(dynamic_cast<A7*>(a8.getA5()) == a8.getA7()); 1764 assert(dynamic_cast<A7*>(a8.getA6()) == a8.getA7()); 1765 1766 assert(dynamic_cast<A8*>(a8.getA1_3()) == a8.getA8()); 1767 assert(dynamic_cast<A8*>(a8.getA1_4()) == a8.getA8()); 1768 assert(dynamic_cast<A8*>(a8.getA1_6()) == a8.getA8()); 1769 assert(dynamic_cast<A8*>(a8.getA2()) == a8.getA8()); 1770 assert(dynamic_cast<A8*>(a8.getA3()) == a8.getA8()); 1771 assert(dynamic_cast<A8*>(a8.getA4()) == a8.getA8()); 1772 assert(dynamic_cast<A8*>(a8.getA5()) == a8.getA8()); 1773 assert(dynamic_cast<A8*>(a8.getA6()) == a8.getA8()); 1774 assert(dynamic_cast<A8*>(a8.getA7()) == a8.getA8()); 1775 1776 assert(dynamic_cast<A3*>(a9.getA1_9()) == 0); 1777 1778 assert(dynamic_cast<A4*>(a9.getA1_9()) == 0); 1779 1780 assert(dynamic_cast<A5*>(a9.getA1_9()) == 0); 1781 1782 assert(dynamic_cast<A6*>(a9.getA1_9()) == 0); 1783 1784 assert(dynamic_cast<A7*>(a9.getA1_9()) == 0); 1785 1786 assert(dynamic_cast<A8*>(a9.getA1_9()) == 0); 1787 1788 assert(dynamic_cast<A9*>(a9.getA1_9()) == a9.getA9()); 1789 1790 assert(dynamic_cast<A3*>(a10.getA1_3()) == a10.getA3()); 1791 assert(dynamic_cast<A3*>(a10.getA1_4()) == a10.getA3()); 1792 assert(dynamic_cast<A3*>(a10.getA1_6()) == a10.getA3()); 1793 assert(dynamic_cast<A3*>(a10.getA2()) == a10.getA3()); 1794 1795 assert(dynamic_cast<A4*>(a10.getA1_3()) == a10.getA4()); 1796 assert(dynamic_cast<A4*>(a10.getA1_4()) == a10.getA4()); 1797 assert(dynamic_cast<A4*>(a10.getA1_6()) == a10.getA4()); 1798 assert(dynamic_cast<A4*>(a10.getA2()) == a10.getA4()); 1799 assert(dynamic_cast<A4*>(a10.getA3()) == a10.getA4()); 1800 1801 assert(dynamic_cast<A5*>(a10.getA1_3()) == a10.getA5()); 1802 assert(dynamic_cast<A5*>(a10.getA1_4()) == a10.getA5()); 1803 assert(dynamic_cast<A5*>(a10.getA1_6()) == a10.getA5()); 1804 assert(dynamic_cast<A5*>(a10.getA2()) == a10.getA5()); 1805 assert(dynamic_cast<A5*>(a10.getA3()) == a10.getA5()); 1806 assert(dynamic_cast<A5*>(a10.getA4()) == a10.getA5()); 1807 1808 assert(dynamic_cast<A6*>(a10.getA1_3()) == a10.getA6()); 1809 assert(dynamic_cast<A6*>(a10.getA1_4()) == a10.getA6()); 1810 assert(dynamic_cast<A6*>(a10.getA1_6()) == a10.getA6()); 1811 assert(dynamic_cast<A6*>(a10.getA2()) == a10.getA6()); 1812 assert(dynamic_cast<A6*>(a10.getA3()) == a10.getA6()); 1813 assert(dynamic_cast<A6*>(a10.getA4()) == a10.getA6()); 1814 assert(dynamic_cast<A6*>(a10.getA5()) == a10.getA6()); 1815 1816 assert(dynamic_cast<A7*>(a10.getA1_3()) == a10.getA7()); 1817 assert(dynamic_cast<A7*>(a10.getA1_4()) == a10.getA7()); 1818 assert(dynamic_cast<A7*>(a10.getA1_6()) == a10.getA7()); 1819 assert(dynamic_cast<A7*>(a10.getA2()) == a10.getA7()); 1820 assert(dynamic_cast<A7*>(a10.getA3()) == a10.getA7()); 1821 assert(dynamic_cast<A7*>(a10.getA4()) == a10.getA7()); 1822 assert(dynamic_cast<A7*>(a10.getA5()) == a10.getA7()); 1823 assert(dynamic_cast<A7*>(a10.getA6()) == a10.getA7()); 1824 1825 assert(dynamic_cast<A8*>(a10.getA1_3()) == a10.getA8()); 1826 assert(dynamic_cast<A8*>(a10.getA1_4()) == a10.getA8()); 1827 assert(dynamic_cast<A8*>(a10.getA1_6()) == a10.getA8()); 1828 assert(dynamic_cast<A8*>(a10.getA2()) == a10.getA8()); 1829 assert(dynamic_cast<A8*>(a10.getA3()) == a10.getA8()); 1830 assert(dynamic_cast<A8*>(a10.getA4()) == a10.getA8()); 1831 assert(dynamic_cast<A8*>(a10.getA5()) == a10.getA8()); 1832 assert(dynamic_cast<A8*>(a10.getA6()) == a10.getA8()); 1833 assert(dynamic_cast<A8*>(a10.getA7()) == a10.getA8()); 1834 1835 assert(dynamic_cast<A9*>(a10.getA1_3()) == 0); 1836 assert(dynamic_cast<A9*>(a10.getA1_4()) == 0); 1837 assert(dynamic_cast<A9*>(a10.getA1_6()) == 0); 1838 assert(dynamic_cast<A9*>(a10.getA2()) == 0); 1839 assert(dynamic_cast<A9*>(a10.getA3()) == 0); 1840 assert(dynamic_cast<A9*>(a10.getA4()) == 0); 1841 assert(dynamic_cast<A9*>(a10.getA5()) == 0); 1842 assert(dynamic_cast<A9*>(a10.getA6()) == 0); 1843 assert(dynamic_cast<A9*>(a10.getA7()) == 0); 1844 assert(dynamic_cast<A9*>(a10.getA8()) == 0); 1845 1846 assert(dynamic_cast<A10*>(a10.getA1_3()) == a10.getA10()); 1847 assert(dynamic_cast<A10*>(a10.getA1_4()) == a10.getA10()); 1848 assert(dynamic_cast<A10*>(a10.getA1_6()) == a10.getA10()); 1849 assert(dynamic_cast<A10*>(a10.getA2()) == a10.getA10()); 1850 assert(dynamic_cast<A10*>(a10.getA3()) == a10.getA10()); 1851 assert(dynamic_cast<A10*>(a10.getA4()) == a10.getA10()); 1852 assert(dynamic_cast<A10*>(a10.getA5()) == a10.getA10()); 1853 assert(dynamic_cast<A10*>(a10.getA6()) == a10.getA10()); 1854 assert(dynamic_cast<A10*>(a10.getA7()) == a10.getA10()); 1855 assert(dynamic_cast<A10*>(a10.getA8()) == a10.getA10()); 1856 1857 assert(dynamic_cast<A3*>(a11.getA1_3()) == a11.getA3()); 1858 assert(dynamic_cast<A3*>(a11.getA1_4()) == a11.getA3()); 1859 assert(dynamic_cast<A3*>(a11.getA1_6()) == a11.getA3()); 1860 assert(dynamic_cast<A3*>(a11.getA1_9()) == a11.getA3()); 1861 assert(dynamic_cast<A3*>(a11.getA2()) == a11.getA3()); 1862 1863 assert(dynamic_cast<A4*>(a11.getA1_3()) == a11.getA4()); 1864 assert(dynamic_cast<A4*>(a11.getA1_4()) == a11.getA4()); 1865 assert(dynamic_cast<A4*>(a11.getA1_6()) == a11.getA4()); 1866 assert(dynamic_cast<A4*>(a11.getA1_9()) == a11.getA4()); 1867 assert(dynamic_cast<A4*>(a11.getA2()) == a11.getA4()); 1868 assert(dynamic_cast<A4*>(a11.getA3()) == a11.getA4()); 1869 1870 assert(dynamic_cast<A5*>(a11.getA1_3()) == a11.getA5()); 1871 assert(dynamic_cast<A5*>(a11.getA1_4()) == a11.getA5()); 1872 assert(dynamic_cast<A5*>(a11.getA1_6()) == a11.getA5()); 1873 assert(dynamic_cast<A5*>(a11.getA1_9()) == a11.getA5()); 1874 assert(dynamic_cast<A5*>(a11.getA2()) == a11.getA5()); 1875 assert(dynamic_cast<A5*>(a11.getA3()) == a11.getA5()); 1876 assert(dynamic_cast<A5*>(a11.getA4()) == a11.getA5()); 1877 1878 assert(dynamic_cast<A6*>(a11.getA1_3()) == a11.getA6()); 1879 assert(dynamic_cast<A6*>(a11.getA1_4()) == a11.getA6()); 1880 assert(dynamic_cast<A6*>(a11.getA1_6()) == a11.getA6()); 1881 assert(dynamic_cast<A6*>(a11.getA1_9()) == a11.getA6()); 1882 assert(dynamic_cast<A6*>(a11.getA2()) == a11.getA6()); 1883 assert(dynamic_cast<A6*>(a11.getA3()) == a11.getA6()); 1884 assert(dynamic_cast<A6*>(a11.getA4()) == a11.getA6()); 1885 assert(dynamic_cast<A6*>(a11.getA5()) == a11.getA6()); 1886 1887 assert(dynamic_cast<A7*>(a11.getA1_3()) == a11.getA7()); 1888 assert(dynamic_cast<A7*>(a11.getA1_4()) == a11.getA7()); 1889 assert(dynamic_cast<A7*>(a11.getA1_6()) == a11.getA7()); 1890 assert(dynamic_cast<A7*>(a11.getA1_9()) == a11.getA7()); 1891 assert(dynamic_cast<A7*>(a11.getA2()) == a11.getA7()); 1892 assert(dynamic_cast<A7*>(a11.getA3()) == a11.getA7()); 1893 assert(dynamic_cast<A7*>(a11.getA4()) == a11.getA7()); 1894 assert(dynamic_cast<A7*>(a11.getA5()) == a11.getA7()); 1895 assert(dynamic_cast<A7*>(a11.getA6()) == a11.getA7()); 1896 1897 assert(dynamic_cast<A8*>(a11.getA1_3()) == a11.getA8()); 1898 assert(dynamic_cast<A8*>(a11.getA1_4()) == a11.getA8()); 1899 assert(dynamic_cast<A8*>(a11.getA1_6()) == a11.getA8()); 1900 assert(dynamic_cast<A8*>(a11.getA1_9()) == a11.getA8()); 1901 assert(dynamic_cast<A8*>(a11.getA2()) == a11.getA8()); 1902 assert(dynamic_cast<A8*>(a11.getA3()) == a11.getA8()); 1903 assert(dynamic_cast<A8*>(a11.getA4()) == a11.getA8()); 1904 assert(dynamic_cast<A8*>(a11.getA5()) == a11.getA8()); 1905 assert(dynamic_cast<A8*>(a11.getA6()) == a11.getA8()); 1906 assert(dynamic_cast<A8*>(a11.getA7()) == a11.getA8()); 1907 1908 assert(dynamic_cast<A9*>(a11.getA1_3()) == a11.getA9()); 1909 assert(dynamic_cast<A9*>(a11.getA1_4()) == a11.getA9()); 1910 assert(dynamic_cast<A9*>(a11.getA1_6()) == a11.getA9()); 1911 assert(dynamic_cast<A9*>(a11.getA1_9()) == a11.getA9()); 1912 assert(dynamic_cast<A9*>(a11.getA2()) == a11.getA9()); 1913 assert(dynamic_cast<A9*>(a11.getA3()) == a11.getA9()); 1914 assert(dynamic_cast<A9*>(a11.getA4()) == a11.getA9()); 1915 assert(dynamic_cast<A9*>(a11.getA5()) == a11.getA9()); 1916 assert(dynamic_cast<A9*>(a11.getA6()) == a11.getA9()); 1917 assert(dynamic_cast<A9*>(a11.getA7()) == a11.getA9()); 1918 assert(dynamic_cast<A9*>(a11.getA8()) == a11.getA9()); 1919 1920 assert(dynamic_cast<A10*>(a11.getA1_3()) == 0); 1921 assert(dynamic_cast<A10*>(a11.getA1_4()) == 0); 1922 assert(dynamic_cast<A10*>(a11.getA1_6()) == 0); 1923 assert(dynamic_cast<A10*>(a11.getA1_9()) == 0); 1924 assert(dynamic_cast<A10*>(a11.getA2()) == 0); 1925 assert(dynamic_cast<A10*>(a11.getA3()) == 0); 1926 assert(dynamic_cast<A10*>(a11.getA4()) == 0); 1927 assert(dynamic_cast<A10*>(a11.getA5()) == 0); 1928 assert(dynamic_cast<A10*>(a11.getA6()) == 0); 1929 assert(dynamic_cast<A10*>(a11.getA7()) == 0); 1930 assert(dynamic_cast<A10*>(a11.getA8()) == 0); 1931 assert(dynamic_cast<A10*>(a11.getA9()) == 0); 1932 1933 assert(dynamic_cast<A11*>(a11.getA1_3()) == a11.getA11()); 1934 assert(dynamic_cast<A11*>(a11.getA1_4()) == a11.getA11()); 1935 assert(dynamic_cast<A11*>(a11.getA1_6()) == a11.getA11()); 1936 assert(dynamic_cast<A11*>(a11.getA1_9()) == a11.getA11()); 1937 assert(dynamic_cast<A11*>(a11.getA2()) == a11.getA11()); 1938 assert(dynamic_cast<A11*>(a11.getA3()) == a11.getA11()); 1939 assert(dynamic_cast<A11*>(a11.getA4()) == a11.getA11()); 1940 assert(dynamic_cast<A11*>(a11.getA5()) == a11.getA11()); 1941 assert(dynamic_cast<A11*>(a11.getA6()) == a11.getA11()); 1942 assert(dynamic_cast<A11*>(a11.getA7()) == a11.getA11()); 1943 assert(dynamic_cast<A11*>(a11.getA8()) == a11.getA11()); 1944 assert(dynamic_cast<A11*>(a11.getA9()) == a11.getA11()); 1945 1946 assert(dynamic_cast<A3*>(a12.getA1_3()) == a12.getA3()); 1947 assert(dynamic_cast<A3*>(a12.getA1_4()) == a12.getA3()); 1948 assert(dynamic_cast<A3*>(a12.getA1_6()) == a12.getA3()); 1949 assert(dynamic_cast<A3*>(a12.getA1_9()) == a12.getA3()); 1950 assert(dynamic_cast<A3*>(a12.getA2()) == a12.getA3()); 1951 1952 assert(dynamic_cast<A4*>(a12.getA1_3()) == a12.getA4()); 1953 assert(dynamic_cast<A4*>(a12.getA1_4()) == a12.getA4()); 1954 assert(dynamic_cast<A4*>(a12.getA1_6()) == a12.getA4()); 1955 assert(dynamic_cast<A4*>(a12.getA1_9()) == a12.getA4()); 1956 assert(dynamic_cast<A4*>(a12.getA2()) == a12.getA4()); 1957 assert(dynamic_cast<A4*>(a12.getA3()) == a12.getA4()); 1958 1959 assert(dynamic_cast<A5*>(a12.getA1_3()) == a12.getA5()); 1960 assert(dynamic_cast<A5*>(a12.getA1_4()) == a12.getA5()); 1961 assert(dynamic_cast<A5*>(a12.getA1_6()) == a12.getA5()); 1962 assert(dynamic_cast<A5*>(a12.getA1_9()) == a12.getA5()); 1963 assert(dynamic_cast<A5*>(a12.getA2()) == a12.getA5()); 1964 assert(dynamic_cast<A5*>(a12.getA3()) == a12.getA5()); 1965 assert(dynamic_cast<A5*>(a12.getA4()) == a12.getA5()); 1966 1967 assert(dynamic_cast<A6*>(a12.getA1_3()) == a12.getA6()); 1968 assert(dynamic_cast<A6*>(a12.getA1_4()) == a12.getA6()); 1969 assert(dynamic_cast<A6*>(a12.getA1_6()) == a12.getA6()); 1970 assert(dynamic_cast<A6*>(a12.getA1_9()) == a12.getA6()); 1971 assert(dynamic_cast<A6*>(a12.getA2()) == a12.getA6()); 1972 assert(dynamic_cast<A6*>(a12.getA3()) == a12.getA6()); 1973 assert(dynamic_cast<A6*>(a12.getA4()) == a12.getA6()); 1974 assert(dynamic_cast<A6*>(a12.getA5()) == a12.getA6()); 1975 1976 assert(dynamic_cast<A7*>(a12.getA1_3()) == a12.getA7()); 1977 assert(dynamic_cast<A7*>(a12.getA1_4()) == a12.getA7()); 1978 assert(dynamic_cast<A7*>(a12.getA1_6()) == a12.getA7()); 1979 assert(dynamic_cast<A7*>(a12.getA1_9()) == a12.getA7()); 1980 assert(dynamic_cast<A7*>(a12.getA2()) == a12.getA7()); 1981 assert(dynamic_cast<A7*>(a12.getA3()) == a12.getA7()); 1982 assert(dynamic_cast<A7*>(a12.getA4()) == a12.getA7()); 1983 assert(dynamic_cast<A7*>(a12.getA5()) == a12.getA7()); 1984 assert(dynamic_cast<A7*>(a12.getA6()) == a12.getA7()); 1985 1986 assert(dynamic_cast<A8*>(a12.getA1_3()) == a12.getA8()); 1987 assert(dynamic_cast<A8*>(a12.getA1_4()) == a12.getA8()); 1988 assert(dynamic_cast<A8*>(a12.getA1_6()) == a12.getA8()); 1989 assert(dynamic_cast<A8*>(a12.getA1_9()) == a12.getA8()); 1990 assert(dynamic_cast<A8*>(a12.getA2()) == a12.getA8()); 1991 assert(dynamic_cast<A8*>(a12.getA3()) == a12.getA8()); 1992 assert(dynamic_cast<A8*>(a12.getA4()) == a12.getA8()); 1993 assert(dynamic_cast<A8*>(a12.getA5()) == a12.getA8()); 1994 assert(dynamic_cast<A8*>(a12.getA6()) == a12.getA8()); 1995 assert(dynamic_cast<A8*>(a12.getA7()) == a12.getA8()); 1996 1997 assert(dynamic_cast<A9*>(a12.getA1_3()) == a12.getA9()); 1998 assert(dynamic_cast<A9*>(a12.getA1_4()) == a12.getA9()); 1999 assert(dynamic_cast<A9*>(a12.getA1_6()) == a12.getA9()); 2000 assert(dynamic_cast<A9*>(a12.getA1_9()) == a12.getA9()); 2001 assert(dynamic_cast<A9*>(a12.getA2()) == a12.getA9()); 2002 assert(dynamic_cast<A9*>(a12.getA3()) == a12.getA9()); 2003 assert(dynamic_cast<A9*>(a12.getA4()) == a12.getA9()); 2004 assert(dynamic_cast<A9*>(a12.getA5()) == a12.getA9()); 2005 assert(dynamic_cast<A9*>(a12.getA6()) == a12.getA9()); 2006 assert(dynamic_cast<A9*>(a12.getA7()) == a12.getA9()); 2007 assert(dynamic_cast<A9*>(a12.getA8()) == a12.getA9()); 2008 2009 assert(dynamic_cast<A10*>(a12.getA1_3()) == a12.getA10()); 2010 assert(dynamic_cast<A10*>(a12.getA1_4()) == a12.getA10()); 2011 assert(dynamic_cast<A10*>(a12.getA1_6()) == a12.getA10()); 2012 assert(dynamic_cast<A10*>(a12.getA1_9()) == a12.getA10()); 2013 assert(dynamic_cast<A10*>(a12.getA2()) == a12.getA10()); 2014 assert(dynamic_cast<A10*>(a12.getA3()) == a12.getA10()); 2015 assert(dynamic_cast<A10*>(a12.getA4()) == a12.getA10()); 2016 assert(dynamic_cast<A10*>(a12.getA5()) == a12.getA10()); 2017 assert(dynamic_cast<A10*>(a12.getA6()) == a12.getA10()); 2018 assert(dynamic_cast<A10*>(a12.getA7()) == a12.getA10()); 2019 assert(dynamic_cast<A10*>(a12.getA8()) == a12.getA10()); 2020 assert(dynamic_cast<A10*>(a12.getA9()) == a12.getA10()); 2021 2022 assert(dynamic_cast<A11*>(a12.getA1_3()) == a12.getA11()); 2023 assert(dynamic_cast<A11*>(a12.getA1_4()) == a12.getA11()); 2024 assert(dynamic_cast<A11*>(a12.getA1_6()) == a12.getA11()); 2025 assert(dynamic_cast<A11*>(a12.getA1_9()) == a12.getA11()); 2026 assert(dynamic_cast<A11*>(a12.getA2()) == a12.getA11()); 2027 assert(dynamic_cast<A11*>(a12.getA3()) == a12.getA11()); 2028 assert(dynamic_cast<A11*>(a12.getA4()) == a12.getA11()); 2029 assert(dynamic_cast<A11*>(a12.getA5()) == a12.getA11()); 2030 assert(dynamic_cast<A11*>(a12.getA6()) == a12.getA11()); 2031 assert(dynamic_cast<A11*>(a12.getA7()) == a12.getA11()); 2032 assert(dynamic_cast<A11*>(a12.getA8()) == a12.getA11()); 2033 assert(dynamic_cast<A11*>(a12.getA9()) == a12.getA11()); 2034 assert(dynamic_cast<A11*>(a12.getA10()) == a12.getA11()); 2035 2036 assert(dynamic_cast<A12*>(a12.getA1_3()) == a12.getA12()); 2037 assert(dynamic_cast<A12*>(a12.getA1_4()) == a12.getA12()); 2038 assert(dynamic_cast<A12*>(a12.getA1_6()) == a12.getA12()); 2039 assert(dynamic_cast<A12*>(a12.getA1_9()) == a12.getA12()); 2040 assert(dynamic_cast<A12*>(a12.getA2()) == a12.getA12()); 2041 assert(dynamic_cast<A12*>(a12.getA3()) == a12.getA12()); 2042 assert(dynamic_cast<A12*>(a12.getA4()) == a12.getA12()); 2043 assert(dynamic_cast<A12*>(a12.getA5()) == a12.getA12()); 2044 assert(dynamic_cast<A12*>(a12.getA6()) == a12.getA12()); 2045 assert(dynamic_cast<A12*>(a12.getA7()) == a12.getA12()); 2046 assert(dynamic_cast<A12*>(a12.getA8()) == a12.getA12()); 2047 assert(dynamic_cast<A12*>(a12.getA9()) == a12.getA12()); 2048 assert(dynamic_cast<A12*>(a12.getA10()) == a12.getA12()); 2049 assert(dynamic_cast<A12*>(a12.getA11()) == a12.getA12()); 2050 2051 assert(dynamic_cast<A3*>(a13.getA1_3()) == a13.getA3()); 2052 assert(dynamic_cast<A3*>(a13.getA1_4()) == a13.getA3()); 2053 assert(dynamic_cast<A3*>(a13.getA1_6()) == a13.getA3()); 2054 assert(dynamic_cast<A3*>(a13.getA1_9()) == a13.getA3()); 2055 assert(dynamic_cast<A3*>(a13.getA2()) == a13.getA3()); 2056 2057 assert(dynamic_cast<A4*>(a13.getA1_3()) == a13.getA4()); 2058 assert(dynamic_cast<A4*>(a13.getA1_4()) == a13.getA4()); 2059 assert(dynamic_cast<A4*>(a13.getA1_6()) == a13.getA4()); 2060 assert(dynamic_cast<A4*>(a13.getA1_9()) == a13.getA4()); 2061 assert(dynamic_cast<A4*>(a13.getA2()) == a13.getA4()); 2062 assert(dynamic_cast<A4*>(a13.getA3()) == a13.getA4()); 2063 2064 assert(dynamic_cast<A5*>(a13.getA1_3()) == a13.getA5()); 2065 assert(dynamic_cast<A5*>(a13.getA1_4()) == a13.getA5()); 2066 assert(dynamic_cast<A5*>(a13.getA1_6()) == a13.getA5()); 2067 assert(dynamic_cast<A5*>(a13.getA1_9()) == a13.getA5()); 2068 assert(dynamic_cast<A5*>(a13.getA2()) == a13.getA5()); 2069 assert(dynamic_cast<A5*>(a13.getA3()) == a13.getA5()); 2070 assert(dynamic_cast<A5*>(a13.getA4()) == a13.getA5()); 2071 2072 assert(dynamic_cast<A6*>(a13.getA1_3()) == a13.getA6()); 2073 assert(dynamic_cast<A6*>(a13.getA1_4()) == a13.getA6()); 2074 assert(dynamic_cast<A6*>(a13.getA1_6()) == a13.getA6()); 2075 assert(dynamic_cast<A6*>(a13.getA1_9()) == a13.getA6()); 2076 assert(dynamic_cast<A6*>(a13.getA2()) == a13.getA6()); 2077 assert(dynamic_cast<A6*>(a13.getA3()) == a13.getA6()); 2078 assert(dynamic_cast<A6*>(a13.getA4()) == a13.getA6()); 2079 assert(dynamic_cast<A6*>(a13.getA5()) == a13.getA6()); 2080 2081 assert(dynamic_cast<A7*>(a13.getA1_3()) == a13.getA7()); 2082 assert(dynamic_cast<A7*>(a13.getA1_4()) == a13.getA7()); 2083 assert(dynamic_cast<A7*>(a13.getA1_6()) == a13.getA7()); 2084 assert(dynamic_cast<A7*>(a13.getA1_9()) == a13.getA7()); 2085 assert(dynamic_cast<A7*>(a13.getA2()) == a13.getA7()); 2086 assert(dynamic_cast<A7*>(a13.getA3()) == a13.getA7()); 2087 assert(dynamic_cast<A7*>(a13.getA4()) == a13.getA7()); 2088 assert(dynamic_cast<A7*>(a13.getA5()) == a13.getA7()); 2089 assert(dynamic_cast<A7*>(a13.getA6()) == a13.getA7()); 2090 2091 assert(dynamic_cast<A8*>(a13.getA1_3()) == a13.getA8()); 2092 assert(dynamic_cast<A8*>(a13.getA1_4()) == a13.getA8()); 2093 assert(dynamic_cast<A8*>(a13.getA1_6()) == a13.getA8()); 2094 assert(dynamic_cast<A8*>(a13.getA1_9()) == a13.getA8()); 2095 assert(dynamic_cast<A8*>(a13.getA2()) == a13.getA8()); 2096 assert(dynamic_cast<A8*>(a13.getA3()) == a13.getA8()); 2097 assert(dynamic_cast<A8*>(a13.getA4()) == a13.getA8()); 2098 assert(dynamic_cast<A8*>(a13.getA5()) == a13.getA8()); 2099 assert(dynamic_cast<A8*>(a13.getA6()) == a13.getA8()); 2100 assert(dynamic_cast<A8*>(a13.getA7()) == a13.getA8()); 2101 2102 assert(dynamic_cast<A9*>(a13.getA1_3()) == a13.getA9()); 2103 assert(dynamic_cast<A9*>(a13.getA1_4()) == a13.getA9()); 2104 assert(dynamic_cast<A9*>(a13.getA1_6()) == a13.getA9()); 2105 assert(dynamic_cast<A9*>(a13.getA1_9()) == a13.getA9()); 2106 assert(dynamic_cast<A9*>(a13.getA2()) == a13.getA9()); 2107 assert(dynamic_cast<A9*>(a13.getA3()) == a13.getA9()); 2108 assert(dynamic_cast<A9*>(a13.getA4()) == a13.getA9()); 2109 assert(dynamic_cast<A9*>(a13.getA5()) == a13.getA9()); 2110 assert(dynamic_cast<A9*>(a13.getA6()) == a13.getA9()); 2111 assert(dynamic_cast<A9*>(a13.getA7()) == a13.getA9()); 2112 assert(dynamic_cast<A9*>(a13.getA8()) == a13.getA9()); 2113 2114 assert(dynamic_cast<A10*>(a13.getA1_3()) == a13.getA10()); 2115 assert(dynamic_cast<A10*>(a13.getA1_4()) == a13.getA10()); 2116 assert(dynamic_cast<A10*>(a13.getA1_6()) == a13.getA10()); 2117 assert(dynamic_cast<A10*>(a13.getA1_9()) == a13.getA10()); 2118 assert(dynamic_cast<A10*>(a13.getA2()) == a13.getA10()); 2119 assert(dynamic_cast<A10*>(a13.getA3()) == a13.getA10()); 2120 assert(dynamic_cast<A10*>(a13.getA4()) == a13.getA10()); 2121 assert(dynamic_cast<A10*>(a13.getA5()) == a13.getA10()); 2122 assert(dynamic_cast<A10*>(a13.getA6()) == a13.getA10()); 2123 assert(dynamic_cast<A10*>(a13.getA7()) == a13.getA10()); 2124 assert(dynamic_cast<A10*>(a13.getA8()) == a13.getA10()); 2125 assert(dynamic_cast<A10*>(a13.getA9()) == a13.getA10()); 2126 2127 assert(dynamic_cast<A11*>(a13.getA1_3()) == a13.getA11()); 2128 assert(dynamic_cast<A11*>(a13.getA1_4()) == a13.getA11()); 2129 assert(dynamic_cast<A11*>(a13.getA1_6()) == a13.getA11()); 2130 assert(dynamic_cast<A11*>(a13.getA1_9()) == a13.getA11()); 2131 assert(dynamic_cast<A11*>(a13.getA2()) == a13.getA11()); 2132 assert(dynamic_cast<A11*>(a13.getA3()) == a13.getA11()); 2133 assert(dynamic_cast<A11*>(a13.getA4()) == a13.getA11()); 2134 assert(dynamic_cast<A11*>(a13.getA5()) == a13.getA11()); 2135 assert(dynamic_cast<A11*>(a13.getA6()) == a13.getA11()); 2136 assert(dynamic_cast<A11*>(a13.getA7()) == a13.getA11()); 2137 assert(dynamic_cast<A11*>(a13.getA8()) == a13.getA11()); 2138 assert(dynamic_cast<A11*>(a13.getA9()) == a13.getA11()); 2139 assert(dynamic_cast<A11*>(a13.getA10()) == a13.getA11()); 2140 2141 assert(dynamic_cast<A12*>(a13.getA1_3()) == a13.getA12()); 2142 assert(dynamic_cast<A12*>(a13.getA1_4()) == a13.getA12()); 2143 assert(dynamic_cast<A12*>(a13.getA1_6()) == a13.getA12()); 2144 assert(dynamic_cast<A12*>(a13.getA1_9()) == a13.getA12()); 2145 assert(dynamic_cast<A12*>(a13.getA2()) == a13.getA12()); 2146 assert(dynamic_cast<A12*>(a13.getA3()) == a13.getA12()); 2147 assert(dynamic_cast<A12*>(a13.getA4()) == a13.getA12()); 2148 assert(dynamic_cast<A12*>(a13.getA5()) == a13.getA12()); 2149 assert(dynamic_cast<A12*>(a13.getA6()) == a13.getA12()); 2150 assert(dynamic_cast<A12*>(a13.getA7()) == a13.getA12()); 2151 assert(dynamic_cast<A12*>(a13.getA8()) == a13.getA12()); 2152 assert(dynamic_cast<A12*>(a13.getA9()) == a13.getA12()); 2153 assert(dynamic_cast<A12*>(a13.getA10()) == a13.getA12()); 2154 assert(dynamic_cast<A12*>(a13.getA11()) == a13.getA12()); 2155 2156 assert(dynamic_cast<A13*>(a13.getA1_3()) == a13.getA13()); 2157 assert(dynamic_cast<A13*>(a13.getA1_4()) == a13.getA13()); 2158 assert(dynamic_cast<A13*>(a13.getA1_6()) == a13.getA13()); 2159 assert(dynamic_cast<A13*>(a13.getA1_9()) == a13.getA13()); 2160 assert(dynamic_cast<A13*>(a13.getA2()) == a13.getA13()); 2161 assert(dynamic_cast<A13*>(a13.getA3()) == a13.getA13()); 2162 assert(dynamic_cast<A13*>(a13.getA4()) == a13.getA13()); 2163 assert(dynamic_cast<A13*>(a13.getA5()) == a13.getA13()); 2164 assert(dynamic_cast<A13*>(a13.getA6()) == a13.getA13()); 2165 assert(dynamic_cast<A13*>(a13.getA7()) == a13.getA13()); 2166 assert(dynamic_cast<A13*>(a13.getA8()) == a13.getA13()); 2167 assert(dynamic_cast<A13*>(a13.getA9()) == a13.getA13()); 2168 assert(dynamic_cast<A13*>(a13.getA10()) == a13.getA13()); 2169 assert(dynamic_cast<A13*>(a13.getA11()) == a13.getA13()); 2170 assert(dynamic_cast<A13*>(a13.getA12()) == a13.getA13()); 2171 } 2172 2173 } // t3 2174 2175 #include <chrono> 2176 #include <iostream> 2177 2178 int main() 2179 { 2180 typedef std::chrono::high_resolution_clock Clock; 2181 typedef Clock::time_point time_point; 2182 typedef std::chrono::duration<double, std::micro> NS; 2183 time_point t0 = Clock::now(); 2184 t1::test(); 2185 t2::test(); 2186 t3::test(); 2187 time_point t1 = Clock::now(); 2188 std::cout << NS(t1-t0).count() << " microseconds\n"; 2189 } 2190