1 // Compile for x86 (FPO disabled)
2 // Compile with "cl /c /Zi /GR- PrettyFuncDumperTest.cpp"
3 // Link with "link PrettyFuncDumperTest.obj /debug /nodefaultlib /entry:main"
4
5 typedef void (*FuncPtrA)();
6 FuncPtrA FuncVarA;
7
8 typedef float (*FuncPtrB)(void);
9 FuncPtrB FuncVarB;
10
11 typedef int(*VariadicFuncPtrTypedef)(char, double, ...);
12 VariadicFuncPtrTypedef VariadicFuncVar;
13
Func(int array[])14 void Func(int array[]) { return; }
15
16 template <int N=1, class ...T>
TemplateFunc(T...Arg)17 void TemplateFunc(T ...Arg) {
18 return;
19 }
20
21 namespace {
Func(int & a,const double b,volatile bool c)22 void Func(int& a, const double b, volatile bool c) { return; }
23 }
24
25 namespace NS {
Func(char a,int b,...)26 void Func(char a, int b, ...) {
27 return;
28 }
29 }
30
31 namespace MemberFuncsTest {
32 class A {
33 public:
FuncA()34 int FuncA() { return 1; }
FuncB(int a,...)35 void FuncB(int a, ...) {}
36 };
37 }
38
main()39 int main() {
40 MemberFuncsTest::A v1;
41 v1.FuncA();
42 v1.FuncB(9, 10, 20);
43
44 NS::Func('c', 2, 10, 100);
45
46 TemplateFunc(10);
47 TemplateFunc(10, 11, 88);
48 return 0;
49 }
50