1 struct Struct1 {
2  public:
3   short offset_0;
4   short offset_16;
5   int offset_32;
6   int offset_64;
7 };
8 
9 struct Struct2 {
10  public:
11   union Nested {
12     int nested_member;
13     int added_member[2];
14   } member;
15 };
16 
17 struct Vtable1 {
18   int member_1;
19   int added_member_1;
20 
21   virtual ~Vtable1();
22   virtual void function_1() = 0;
23   virtual void added_function_1() = 0;
24 };
25 
26 struct Vtable2 {
27   int member_2;
28   int added_member_2;
29 
30   virtual void function_2();
31   virtual void added_function_2() = 0;
32   virtual ~Vtable2();
33 };
34 
35 struct Vtable3 : virtual public Vtable1, virtual public Vtable2 {
36   int member_3;
37   int added_member_3;
38 
39   virtual ~Vtable3();
40   virtual void function_3();
41   virtual void added_function_3();
42 };
43 
44 Vtable3 &PassByReference(Struct1 &, Struct2 &);
45