]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/proto/include/boost/proto/tags.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / proto / include / boost / proto / tags.hpp
CommitLineData
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
14namespace 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