Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 10:07:37

0001 ///////////////////////////////////////////////////////////////////////////////
0002 /// \file tags.hpp
0003 /// Contains the tags for all the overloadable operators in C++
0004 //
0005 //  Copyright 2008 Eric Niebler. Distributed under the Boost
0006 //  Software License, Version 1.0. (See accompanying file
0007 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0008 
0009 #ifndef BOOST_PROTO_TAGS_HPP_EAN_04_01_2005
0010 #define BOOST_PROTO_TAGS_HPP_EAN_04_01_2005
0011 
0012 #include <boost/proto/proto_fwd.hpp>
0013 
0014 namespace boost { namespace proto { namespace tagns_ { namespace tag
0015 {
0016 
0017     /// Tag type for terminals; aka, leaves in the expression tree.
0018     struct terminal {};
0019 
0020     /// Tag type for the unary + operator.
0021     struct unary_plus {};
0022 
0023     /// Tag type for the unary - operator.
0024     struct negate {};
0025 
0026     /// Tag type for the unary * operator.
0027     struct dereference {};
0028 
0029     /// Tag type for the unary ~ operator.
0030     struct complement {};
0031 
0032     /// Tag type for the unary & operator.
0033     struct address_of {};
0034 
0035     /// Tag type for the unary ! operator.
0036     struct logical_not {};
0037 
0038     /// Tag type for the unary prefix ++ operator.
0039     struct pre_inc {};
0040 
0041     /// Tag type for the unary prefix -- operator.
0042     struct pre_dec {};
0043 
0044     /// Tag type for the unary postfix ++ operator.
0045     struct post_inc {};
0046 
0047     /// Tag type for the unary postfix -- operator.
0048     struct post_dec {};
0049 
0050     /// Tag type for the binary \<\< operator.
0051     struct shift_left {};
0052 
0053     /// Tag type for the binary \>\> operator.
0054     struct shift_right {};
0055 
0056     /// Tag type for the binary * operator.
0057     struct multiplies {};
0058 
0059     /// Tag type for the binary / operator.
0060     struct divides {};
0061 
0062     /// Tag type for the binary % operator.
0063     struct modulus {};
0064 
0065     /// Tag type for the binary + operator.
0066     struct plus {};
0067 
0068     /// Tag type for the binary - operator.
0069     struct minus {};
0070 
0071     /// Tag type for the binary \< operator.
0072     struct less {};
0073 
0074     /// Tag type for the binary \> operator.
0075     struct greater {};
0076 
0077     /// Tag type for the binary \<= operator.
0078     struct less_equal {};
0079 
0080     /// Tag type for the binary \>= operator.
0081     struct greater_equal {};
0082 
0083     /// Tag type for the binary == operator.
0084     struct equal_to {};
0085 
0086     /// Tag type for the binary != operator.
0087     struct not_equal_to {};
0088 
0089     /// Tag type for the binary || operator.
0090     struct logical_or {};
0091 
0092     /// Tag type for the binary && operator.
0093     struct logical_and {};
0094 
0095     /// Tag type for the binary & operator.
0096     struct bitwise_and {};
0097 
0098     /// Tag type for the binary | operator.
0099     struct bitwise_or {};
0100 
0101     /// Tag type for the binary ^ operator.
0102     struct bitwise_xor {};
0103 
0104     /// Tag type for the binary , operator.
0105     struct comma {};
0106 
0107     /// Tag type for the binary ->* operator.
0108     struct mem_ptr {};
0109 
0110     /// Tag type for the binary = operator.
0111     struct assign {};
0112 
0113     /// Tag type for the binary \<\<= operator.
0114     struct shift_left_assign {};
0115 
0116     /// Tag type for the binary \>\>= operator.
0117     struct shift_right_assign {};
0118 
0119     /// Tag type for the binary *= operator.
0120     struct multiplies_assign {};
0121 
0122     /// Tag type for the binary /= operator.
0123     struct divides_assign {};
0124 
0125     /// Tag type for the binary %= operator.
0126     struct modulus_assign {};
0127 
0128     /// Tag type for the binary += operator.
0129     struct plus_assign {};
0130 
0131     /// Tag type for the binary -= operator.
0132     struct minus_assign {};
0133 
0134     /// Tag type for the binary &= operator.
0135     struct bitwise_and_assign {};
0136 
0137     /// Tag type for the binary |= operator.
0138     struct bitwise_or_assign {};
0139 
0140     /// Tag type for the binary ^= operator.
0141     struct bitwise_xor_assign {};
0142 
0143     /// Tag type for the binary subscript operator.
0144     struct subscript {};
0145 
0146     /// Tag type for the binary virtual data members.
0147     struct member {};
0148 
0149     /// Tag type for the ternary ?: conditional operator.
0150     struct if_else_ {};
0151 
0152     /// Tag type for the n-ary function call operator.
0153     struct function {};
0154 
0155 }}}}
0156 
0157 #endif