-
Notifications
You must be signed in to change notification settings - Fork 273
/
Copy pathmain.cpp
120 lines (87 loc) · 1.92 KB
/
main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include <cassert>
#include "tuple.h"
#ifndef NO_STRING
#include <string>
#endif
int main(int argc, char** argv)
{
tuple<int,int> p;
int x=0, y=0;
p = tuple<int,int>(1,2);
#ifndef NO_IO
std::cout << p << std::endl;
#endif
p = tuple<int,int>(3,4);
#ifndef NO_IO
std::cout << p << std::endl;
std::cout << x << "," << y << std::endl;
#endif
assert(x==0);
assert(y==0);
tie(x,y) = p;
#ifndef NO_IO
std::cout << x << "," << y << std::endl;
#endif
assert(x==3);
assert(y==4);
p = tuple<int,int>(5,6);
#ifndef NO_IO
std::cout << p << std::endl;
std::cout << x << "," << y << std::endl;
#endif
assert(x==3);
assert(y==4);
x = 42; y = 69;
#ifndef NO_IO
std::cout << p << std::endl;
std::cout << x << "," << y << std::endl;
#endif
assert(x==42);
assert(y==69);
tuple<bool,bool> q;
q = tuple<bool,bool>(true,false);
#ifndef NO_IO
std::cout << q << std::endl;
#endif
bool foo, bar;
tie(foo,bar) = q;
#ifndef NO_IO
std::cout << foo << " " << bar << std::endl;
#endif
assert(foo);
assert(!bar);
tuple<int> one;
one = 69;
#ifndef NO_IO
std::cout << one << std::endl;
#endif
tie(x) = one;
#ifndef NO_IO
std::cout << x << std::endl;
#endif
assert(x==69);
#ifndef NO_STRING
tuple<int,std::string,int> three;
three = tuple<int,std::string,int>(42," does not equal ",69);
#ifndef NO_IO
std::cout << three << std::endl;
#endif
tuple<std::string,int,std::string,int> four;
four = tuple<std::string,int,std::string,int>("and ", 42," is less than ",69);
#ifndef NO_IO
std::cout << four << std::endl;
#endif
tuple<std::string,std::string> msg;
msg = tuple<std::string,std::string>("hello","world");
#ifndef NO_IO
std::cout << msg << std::endl;
#endif
std::string xx,yy;
tie(xx,yy) = tuple<std::string,std::string>("hello","world");
#ifndef NO_IO
std::cout << xx << " " << yy << std::endl;
#endif
assert(xx=="hello");
assert(yy=="world");
#endif
}