-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDefs.h
58 lines (43 loc) · 1.39 KB
/
Defs.h
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
#ifndef DEFS_H
#define DEFS_H
#include <cstdlib>
#define MAX_ANDS 20
#define MAX_ORS 20
#define PAGE_SIZE 131072
#define PIPE_SIZE 512
#define FOREACH(el, array, n) \
for (typeof(array) p=array; p!=array+(n); ++p) { \
typeof(*p) & el = *p;
#define FOREACH_WITH_INDEX(el, array, n, i) \
for (size_t i=0; i<(n); ++i) { \
typeof(array[i]) & el = array[i];
#define FOREACH_ZIPPED(el1, el2, array1, array2, n) \
for (size_t _ii=0; _ii<(n); ++_ii) { \
typeof(array1[_ii]) & el1 = array1[_ii]; \
typeof(array2[_ii]) & el2 = array2[_ii];
#define FOREACH_ZIPPED_WITH_INDEX(el1, el2, array1, array2, n, i) \
for (size_t i=0; i<(n); ++i) { \
typeof(array1[i]) & el1 = array1[i]; \
typeof(array2[i]) & el2 = array2[i];
#ifndef END_FOREACH
#define END_FOREACH }
#endif // END_FOREACH
#define UNPACK2(var1, var2, value1, value2) { \
var1 = (value1); var2 = (value2); }
enum Target {Left, Right, Literal};
enum CompOperator {LessThan, GreaterThan, Equals};
enum Type {Int, Double, String};
unsigned int Random_Generate();
class Rstring {
public:
static void gen(char* s, const int len) {
static const char alphanum[] =
"0123456789"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz";
for (int i=0; i<len; ++i)
s[i] = alphanum[rand() % (sizeof(alphanum) - 1)];
s[len] = 0;
}
};
#endif