#include #include #include #include #include #include enum E { red, green, blue, yellow }; struct S { int x, y; S* s; }; struct emptyBase { }; struct emptyDerived : S { }; struct emptyNested : emptyBase { }; struct emptyVBase { virtual ~emptyVBase(){} }; struct emptyVDerived : S { virtual ~emptyVDerived(){} }; struct emptyVNested : emptyVBase { }; int globalvar = 1234; class Cl { int k; double l; public: Cl(int r); virtual ~Cl(); virtual int f(int x); }; typedef void (*PtrFunc)(E*, char); class Dl : public Cl { public: Dl(int r); virtual int f(int x); int operator()(const TQString& x, int& y) const; operator const char*() { return 0; } operator PtrFunc*(); }; namespace A { namespace { namespace B { namespace { namespace { void g() { S s1, s2; s1.x = 85; s2.y = 17; s1.s = &s2; s2.s = &s1; } } // namespace void Banong() { g(); } } // namespace void g() { Banong(); } } // namespace B void Aanong() { B::g(); } } // namespace void g() { Aanong(); } } // namespace A void f(E e[3], char c) { E x = e[2]; S y[2]; E* pe = e; E* pea[3] = { pe, }; { int x = 17; x; } A::g(); char buffer[300]; memset(buffer, 1, 300); for (int i = 0; i < sizeof(buffer); i +=15) buffer[i] = '\02'; TQDir dir; TQFile file; TQFileInfo fi; x = red; emptyBase eb; emptyDerived ed; emptyNested en; int ea[3]; emptyVBase evb; emptyVDerived evd; emptyVNested evn; } void strtest(const char* t) { const char* s = t; const char*& s2 = s; if (t == 0) strtest(s2); std::cout << s2 << std::endl; } template void templated_strtest(F f, const char* t) { // test in various contexts struct incomplete_seq_intern { int val; char is[4]; int val2; }; struct incomplete_seq_end { int val; char is[4]; }; unsigned char a[4] = {',', 020, 021, 0325}; incomplete_seq_intern b = { 1, {',', 020, 021, 0325}, 2 }; incomplete_seq_end c = { 1, {',', 020, 021, 0325} }; unsigned char d[30][4] = { {',', 020, 021, 0325}, }; for (int i = 1; i < 30; i++) memcpy(d[i], d[0], 4); incomplete_seq_intern ba[30] = { { 1, {',', 020, 021, 0325}, 2 } }; incomplete_seq_end ca[30] = { { 1, {',', 020, 021, 0325} } }; f(t); } void segFault() { *(char*)0 = 's'; } int main(int argc, char* argv[]) { if (argc > 1) { if (*argv[1] == 's') { segFault(); } else if (*argv[1] == 'a') { // let debugger attach int junk; std::cin >> junk; } } char a[6] = { 'a', 'B', '\'', '\"' }; char a1[1] = { '1' }; E e[3] = { red, green, blue }; E e1[1] = { yellow }; a[0] = '5'; void (*pf[2])(E*, char) = {f}; { double d[1] = { -1.234e123 }; int i = 10; sin(i); } (*pf[0])(e, '\n'); TQString s; s = "Hi, there!\r\n\t\"\'\\"; const TQString& strref = s; templated_strtest(strtest, s); s = "asbcxxxxxxxxxxxxxxxxxxxxxxxxxxx"; strtest(s); s += "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"; strtest(s); s += "rst"; strtest(s); s = "xxxxxxxxxxxxxxxxxxxxxxxxxxx"; strtest(s); s += "rst"; strtest(s); s = ""; Cl c1(13); Dl d1(3214); d1.f(17); int n = 83; d1(strref, n); PtrFunc* ppf = d1; } Cl::Cl(int r) : k(r), l(sin(r)) { std::cout << l << std::endl; } Cl::~Cl() { } int Cl::f(int x) { int y = 2*x; return y; } Dl::Dl(int r) : Cl(r) { } int Dl::f(int x) { int y = Cl::f(x); return y+3; } int Dl::operator()(const TQString& x, int& y) const { std::cerr << "ha! I know!" << std::endl; return 1; } Dl::operator PtrFunc*() { return 0; }