1// Compile with "cl /c /Zi /GR- ClassLayoutTest.cpp" 2// Link with "link ClassLayoutTest.obj /debug /nodefaultlib /entry:main" 3 4namespace MembersTest { 5 class A { 6 public: 7 typedef int NestedTypedef; 8 enum NestedEnum { 9 NestedEnumValue1 10 }; 11 12 void MemberFunc() {} 13 14 private: 15 int IntMemberVar; 16 double DoubleMemberVar; 17 }; 18} 19 20namespace GlobalsTest { 21 int IntVar; 22 double DoubleVar; 23 24 typedef int Typedef; 25 enum Enum { 26 Val1 27 } EnumVar; 28 Typedef TypedefVar; 29} 30 31namespace BaseClassTest { 32 class A {}; 33 class B : public virtual A {}; 34 class C : public virtual A {}; 35 class D : protected B, private C {}; 36} 37 38namespace UdtKindTest { 39 struct A {}; 40 class B {}; 41 union C {}; 42} 43 44namespace BitFieldTest { 45 struct A { 46 int Bits1 : 1; 47 int Bits2 : 2; 48 int Bits3 : 3; 49 int Bits4 : 4; 50 int Bits22 : 22; 51 int Offset0x04; 52 }; 53}; 54 55int main(int argc, char **argv) { 56 MembersTest::A v1; 57 v1.MemberFunc(); 58 BaseClassTest::D v2; 59 UdtKindTest::A v3; 60 UdtKindTest::B v4; 61 UdtKindTest::C v5; 62 BitFieldTest::A v7; 63 return 0; 64} 65