1*99451b44SJordan Rupprecht #include <stdio.h>
2*99451b44SJordan Rupprecht #include <stdlib.h>
3*99451b44SJordan Rupprecht #include <stdint.h>
4*99451b44SJordan Rupprecht
5*99451b44SJordan Rupprecht struct BagOfInts
6*99451b44SJordan Rupprecht {
7*99451b44SJordan Rupprecht int x;
8*99451b44SJordan Rupprecht int y;
9*99451b44SJordan Rupprecht int z;
BagOfIntsBagOfInts10*99451b44SJordan Rupprecht BagOfInts(int X) :
11*99451b44SJordan Rupprecht x(X),
12*99451b44SJordan Rupprecht y(X+1),
13*99451b44SJordan Rupprecht z(X+2) {}
14*99451b44SJordan Rupprecht };
15*99451b44SJordan Rupprecht
16*99451b44SJordan Rupprecht struct BagOfFloats
17*99451b44SJordan Rupprecht {
18*99451b44SJordan Rupprecht float x;
19*99451b44SJordan Rupprecht float y;
20*99451b44SJordan Rupprecht float z;
BagOfFloatsBagOfFloats21*99451b44SJordan Rupprecht BagOfFloats(float X) :
22*99451b44SJordan Rupprecht x(X+0.334),
23*99451b44SJordan Rupprecht y(X+0.500),
24*99451b44SJordan Rupprecht z(X+0.667) {}
25*99451b44SJordan Rupprecht };
26*99451b44SJordan Rupprecht
27*99451b44SJordan Rupprecht struct BagOfBags
28*99451b44SJordan Rupprecht {
29*99451b44SJordan Rupprecht BagOfInts x;
30*99451b44SJordan Rupprecht BagOfInts y;
31*99451b44SJordan Rupprecht BagOfFloats z;
32*99451b44SJordan Rupprecht BagOfFloats q;
BagOfBagsBagOfBags33*99451b44SJordan Rupprecht BagOfBags() :
34*99451b44SJordan Rupprecht x('E'),
35*99451b44SJordan Rupprecht y('B'),
36*99451b44SJordan Rupprecht z(1.1),
37*99451b44SJordan Rupprecht q(20.11) {}
38*99451b44SJordan Rupprecht };
39*99451b44SJordan Rupprecht
40*99451b44SJordan Rupprecht struct EmptyStruct {};
41*99451b44SJordan Rupprecht
42*99451b44SJordan Rupprecht struct Plenty
43*99451b44SJordan Rupprecht {
44*99451b44SJordan Rupprecht BagOfInts *some_values;
45*99451b44SJordan Rupprecht int* array;
46*99451b44SJordan Rupprecht int array_size;
47*99451b44SJordan Rupprecht int bitfield;
48*99451b44SJordan Rupprecht
PlentyPlenty49*99451b44SJordan Rupprecht Plenty(int N, bool flagA, bool flagB) :
50*99451b44SJordan Rupprecht some_values(new BagOfInts(N)),
51*99451b44SJordan Rupprecht array(new int[N]),
52*99451b44SJordan Rupprecht array_size(N),
53*99451b44SJordan Rupprecht bitfield( (flagA ? 0x01 : 0x00) | (flagB ? 0x10 : 0x00) )
54*99451b44SJordan Rupprecht {
55*99451b44SJordan Rupprecht for (int j = 0; j < N; j++)
56*99451b44SJordan Rupprecht array[j] = N-j;
57*99451b44SJordan Rupprecht }
58*99451b44SJordan Rupprecht };
59*99451b44SJordan Rupprecht
main(int argc,const char * argv[])60*99451b44SJordan Rupprecht int main (int argc, const char * argv[])
61*99451b44SJordan Rupprecht {
62*99451b44SJordan Rupprecht BagOfInts int_bag(6);
63*99451b44SJordan Rupprecht BagOfFloats float_bag(2.71);
64*99451b44SJordan Rupprecht
65*99451b44SJordan Rupprecht BagOfBags bag_bag;
66*99451b44SJordan Rupprecht EmptyStruct es;
67*99451b44SJordan Rupprecht
68*99451b44SJordan Rupprecht Plenty plenty_of_stuff(5,true,false);
69*99451b44SJordan Rupprecht
70*99451b44SJordan Rupprecht plenty_of_stuff.bitfield = 0x11; // Set break point at this line.
71*99451b44SJordan Rupprecht
72*99451b44SJordan Rupprecht bag_bag.x.z = 12;
73*99451b44SJordan Rupprecht
74*99451b44SJordan Rupprecht return 0;
75*99451b44SJordan Rupprecht
76*99451b44SJordan Rupprecht }
77*99451b44SJordan Rupprecht
78