PageRenderTime 37ms CodeModel.GetById 30ms app.highlight 4ms RepoModel.GetById 1ms app.codeStats 0ms

/Src/Dependencies/Boost/boost/proto/tags.hpp

http://hadesmem.googlecode.com/
C++ Header | 157 lines | 53 code | 51 blank | 53 comment | 0 complexity | 560b5f01cc147ff5a1448deba49b6ab4 MD5 | raw file
  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 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