]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | /////////////////////////////////////////////////////////////////////////////// |
2 | /// \file tags.hpp | |
3 | /// Contains the tags for all the overloadable operators in C++ | |
4 | // | |
5 | // Copyright 2008 Eric Niebler. Distributed under the Boost | |
6 | // Software License, Version 1.0. (See accompanying file | |
7 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
8 | ||
9 | #ifndef BOOST_PROTO_TAGS_HPP_EAN_04_01_2005 | |
10 | #define BOOST_PROTO_TAGS_HPP_EAN_04_01_2005 | |
11 | ||
12 | #include <boost/proto/proto_fwd.hpp> | |
13 | ||
14 | namespace boost { namespace proto { namespace tagns_ { namespace tag | |
15 | { | |
16 | ||
17 | /// Tag type for terminals; aka, leaves in the expression tree. | |
18 | struct terminal {}; | |
19 | ||
20 | /// Tag type for the unary + operator. | |
21 | struct unary_plus {}; | |
22 | ||
23 | /// Tag type for the unary - operator. | |
24 | struct negate {}; | |
25 | ||
26 | /// Tag type for the unary * operator. | |
27 | struct dereference {}; | |
28 | ||
29 | /// Tag type for the unary ~ operator. | |
30 | struct complement {}; | |
31 | ||
32 | /// Tag type for the unary & operator. | |
33 | struct address_of {}; | |
34 | ||
35 | /// Tag type for the unary ! operator. | |
36 | struct logical_not {}; | |
37 | ||
38 | /// Tag type for the unary prefix ++ operator. | |
39 | struct pre_inc {}; | |
40 | ||
41 | /// Tag type for the unary prefix -- operator. | |
42 | struct pre_dec {}; | |
43 | ||
44 | /// Tag type for the unary postfix ++ operator. | |
45 | struct post_inc {}; | |
46 | ||
47 | /// Tag type for the unary postfix -- operator. | |
48 | struct post_dec {}; | |
49 | ||
50 | /// Tag type for the binary \<\< operator. | |
51 | struct shift_left {}; | |
52 | ||
53 | /// Tag type for the binary \>\> operator. | |
54 | struct shift_right {}; | |
55 | ||
56 | /// Tag type for the binary * operator. | |
57 | struct multiplies {}; | |
58 | ||
59 | /// Tag type for the binary / operator. | |
60 | struct divides {}; | |
61 | ||
62 | /// Tag type for the binary % operator. | |
63 | struct modulus {}; | |
64 | ||
65 | /// Tag type for the binary + operator. | |
66 | struct plus {}; | |
67 | ||
68 | /// Tag type for the binary - operator. | |
69 | struct minus {}; | |
70 | ||
71 | /// Tag type for the binary \< operator. | |
72 | struct less {}; | |
73 | ||
74 | /// Tag type for the binary \> operator. | |
75 | struct greater {}; | |
76 | ||
77 | /// Tag type for the binary \<= operator. | |
78 | struct less_equal {}; | |
79 | ||
80 | /// Tag type for the binary \>= operator. | |
81 | struct greater_equal {}; | |
82 | ||
83 | /// Tag type for the binary == operator. | |
84 | struct equal_to {}; | |
85 | ||
86 | /// Tag type for the binary != operator. | |
87 | struct not_equal_to {}; | |
88 | ||
89 | /// Tag type for the binary || operator. | |
90 | struct logical_or {}; | |
91 | ||
92 | /// Tag type for the binary && operator. | |
93 | struct logical_and {}; | |
94 | ||
95 | /// Tag type for the binary & operator. | |
96 | struct bitwise_and {}; | |
97 | ||
98 | /// Tag type for the binary | operator. | |
99 | struct bitwise_or {}; | |
100 | ||
101 | /// Tag type for the binary ^ operator. | |
102 | struct bitwise_xor {}; | |
103 | ||
104 | /// Tag type for the binary , operator. | |
105 | struct comma {}; | |
106 | ||
107 | /// Tag type for the binary ->* operator. | |
108 | struct mem_ptr {}; | |
109 | ||
110 | /// Tag type for the binary = operator. | |
111 | struct assign {}; | |
112 | ||
113 | /// Tag type for the binary \<\<= operator. | |
114 | struct shift_left_assign {}; | |
115 | ||
116 | /// Tag type for the binary \>\>= operator. | |
117 | struct shift_right_assign {}; | |
118 | ||
119 | /// Tag type for the binary *= operator. | |
120 | struct multiplies_assign {}; | |
121 | ||
122 | /// Tag type for the binary /= operator. | |
123 | struct divides_assign {}; | |
124 | ||
125 | /// Tag type for the binary %= operator. | |
126 | struct modulus_assign {}; | |
127 | ||
128 | /// Tag type for the binary += operator. | |
129 | struct plus_assign {}; | |
130 | ||
131 | /// Tag type for the binary -= operator. | |
132 | struct minus_assign {}; | |
133 | ||
134 | /// Tag type for the binary &= operator. | |
135 | struct bitwise_and_assign {}; | |
136 | ||
137 | /// Tag type for the binary |= operator. | |
138 | struct bitwise_or_assign {}; | |
139 | ||
140 | /// Tag type for the binary ^= operator. | |
141 | struct bitwise_xor_assign {}; | |
142 | ||
143 | /// Tag type for the binary subscript operator. | |
144 | struct subscript {}; | |
145 | ||
146 | /// Tag type for the binary virtual data members. | |
147 | struct member {}; | |
148 | ||
149 | /// Tag type for the ternary ?: conditional operator. | |
150 | struct if_else_ {}; | |
151 | ||
152 | /// Tag type for the n-ary function call operator. | |
153 | struct function {}; | |
154 | ||
155 | }}}} | |
156 | ||
157 | #endif |