-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathc_pair.h
116 lines (85 loc) · 3.22 KB
/
c_pair.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
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
/*
*
* Copyright (c) 1994
* Hewlett-Packard Company
*
* Permission to use, copy, modify, distribute and sell this software
* and its documentation for any purpose is hereby granted without fee,
* provided that the above copyright notice appear in all copies and
* that both that copyright notice and this permission notice appear
* in supporting documentation. Hewlett-Packard Company makes no
* representations about the suitability of this software for any
* purpose. It is provided "as is" without express or implied warranty.
*
*
* Copyright (c) 1996
* Silicon Graphics Computer Systems, Inc.
*
* Permission to use, copy, modify, distribute and sell this software
* and its documentation for any purpose is hereby granted without fee,
* provided that the above copyright notice appear in all copies and
* that both that copyright notice and this permission notice appear
* in supporting documentation. Silicon Graphics makes no
* representations about the suitability of this software for any
* purpose. It is provided "as is" without express or implied warranty.
*/
/*
Copyright (c) 2007 Wenbo Lao(Rob Lao)
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
Wenbo Lao(Rob Lao)
viewpl(at)gmail.com
*/
/*
NOTE: This is an internal header file, You should not attempt to use it directly.
*/
#ifndef _C_PAIR_H
#define _C_PAIR_H
#include "c_iterator.h"
#include "c_memory.h"
#define c_pair _c_pair
#define c_ppair _c_ppair
#define c_iter_bool_pair _c_iter_bool_pair
#define c_piter_bool_pair _c_piter_bool_pair
#define c_iter_iter_pair _c_iter_iter_pair
#define c_piter_iter_pair _c_piter_iter_pair
#define c_make_pair _c_make_pair
#define c_make_iter_bool_pair _c_make_iter_bool_pair
#define c_make_iter_iter_pair _c_make_iter_iter_pair
typedef value_type first_type;
typedef value_type second_type;
typedef struct c_pair c_pair, * c_ppair;
typedef int (*PAIR_COMPARER)(c_ppair, c_ppair);
struct c_pair
{
first_type first;
second_type second;
};
typedef struct c_iter_bool_pair c_iter_bool_pair, c_piter_bool_pair;
struct c_iter_bool_pair
{
c_iterator first;
c_bool second;
};
typedef struct c_iter_iter_pair c_iter_iter_pair, c_piter_iter_pair;
struct c_iter_iter_pair
{
c_iterator first;
c_iterator second;
};
c_pair c_make_pair(const value_type x, const value_type y);
c_iter_bool_pair c_make_iter_bool_pair(c_iterator x, c_bool y);
c_iter_iter_pair c_make_iter_iter_pair(c_iterator x, c_iterator y);
#endif /* _C_PAIR_H */