// Compile with "cl /c /Zi /GR- /EHsc test-pdb-types.cpp" | |
// Link with "link test-pdb-types.obj /debug /nodefaultlib /entry:main | |
// /out:test-pdb-types.exe" | |
using namespace std; | |
// Sizes of builtin types | |
static const int sizeof_char = sizeof(char); | |
static const int sizeof_uchar = sizeof(unsigned char); | |
static const int sizeof_short = sizeof(short); | |
static const int sizeof_ushort = sizeof(unsigned short); | |
static const int sizeof_int = sizeof(int); | |
static const int sizeof_uint = sizeof(unsigned int); | |
static const int sizeof_long = sizeof(long); | |
static const int sizeof_ulong = sizeof(unsigned long); | |
static const int sizeof_longlong = sizeof(long long); | |
static const int sizeof_ulonglong = sizeof(unsigned long long); | |
static const int sizeof_int64 = sizeof(__int64); | |
static const int sizeof_uint64 = sizeof(unsigned __int64); | |
static const int sizeof_float = sizeof(float); | |
static const int sizeof_double = sizeof(double); | |
static const int sizeof_bool = sizeof(bool); | |
static const int sizeof_wchar = sizeof(wchar_t); | |
enum Enum { | |
EValue1 = 1, | |
EValue2 = 2, | |
}; | |
enum ShortEnum : short { ESValue1 = 1, ESValue2 = 2 }; | |
namespace NS { | |
class NSClass { | |
float f; | |
double d; | |
}; | |
} | |
class Class { | |
public: | |
class NestedClass { | |
Enum e; | |
}; | |
ShortEnum se; | |
}; | |
int test_func(int a, int b) { return a + b; } | |
typedef Class ClassTypedef; | |
typedef NS::NSClass NSClassTypedef; | |
int GlobalArray[10]; | |
static const int sizeof_NSClass = sizeof(NS::NSClass); | |
static const int sizeof_Class = sizeof(Class); | |
static const int sizeof_NestedClass = sizeof(Class::NestedClass); | |
static const int sizeof_Enum = sizeof(Enum); | |
static const int sizeof_ShortEnum = sizeof(ShortEnum); | |
static const int sizeof_ClassTypedef = sizeof(ClassTypedef); | |
static const int sizeof_NSClassTypedef = sizeof(NSClassTypedef); | |
static const int sizeof_GlobalArray = sizeof(GlobalArray); | |
int main(int argc, char **argv) { | |
ShortEnum e1; | |
Enum e2; | |
Class c1; | |
Class::NestedClass c2; | |
NS::NSClass c3; | |
ClassTypedef t1; | |
NSClassTypedef t2; | |
return test_func(1, 2); | |
} |