|
|
1.1 root 1: // just a simple check to verify that < and > operators are intact
2:
3: #include <iostream.h>
4:
5:
6: template <class T>
7: class C
8: {
9: public:
10: T x;
11:
12: C(T y) { x = y; }
13: T f() { return x; }
14: void m();
15: int operator <(C&);
16: };
17:
18:
19: template <class T>
20: void C<T>::m()
21: { cout << x << "\n"; }
22:
23: template <class T>
24: int C<T>::operator <(C<T>& c)
25: {
26: return x < c.x;
27: }
28:
29:
30:
31:
32: #define check(p) if (!(p))printf("\nerror(%d): test failed at line %d",++error, __LINE__)
33:
34:
35: typedef char *pc ;
36: typedef int *pi ;
37:
38: extern "C" void printf(...) ;
39:
40: extern "C" void exit(int) ;
41:
42: void end_test(int error)
43: {
44: printf ("\n*End Testing %s", __FILE__) ;
45: if (error)
46: printf (" *** %d errors ***\n", error) ;
47: else printf (" no errors detected\n") ;
48:
49: exit(error) ;
50: }
51:
52: main()
53: {
54: printf ("\n*Begin Testing %s\n", __FILE__) ;
55:
56: C<float> x(3.5), y(5.0);
57: int error = 0 ;
58:
59: check( x < y) ;
60:
61: end_test(error) ;
62:
63: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.