|
|
|||
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
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|