158 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			158 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								///////////////////////////////////////////////////////////////////////////////
							 | 
						||
| 
								 | 
							
								/// \file tags.hpp
							 | 
						||
| 
								 | 
							
								/// Contains the tags for all the overloadable operators in C++
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//  Copyright 2008 Eric Niebler. Distributed under the Boost
							 | 
						||
| 
								 | 
							
								//  Software License, Version 1.0. (See accompanying file
							 | 
						||
| 
								 | 
							
								//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_PROTO_TAGS_HPP_EAN_04_01_2005
							 | 
						||
| 
								 | 
							
								#define BOOST_PROTO_TAGS_HPP_EAN_04_01_2005
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <boost/proto/proto_fwd.hpp>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace boost { namespace proto { namespace tagns_ { namespace tag
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for terminals; aka, leaves in the expression tree.
							 | 
						||
| 
								 | 
							
								    struct terminal {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the unary + operator.
							 | 
						||
| 
								 | 
							
								    struct unary_plus {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the unary - operator.
							 | 
						||
| 
								 | 
							
								    struct negate {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the unary * operator.
							 | 
						||
| 
								 | 
							
								    struct dereference {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the unary ~ operator.
							 | 
						||
| 
								 | 
							
								    struct complement {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the unary & operator.
							 | 
						||
| 
								 | 
							
								    struct address_of {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the unary ! operator.
							 | 
						||
| 
								 | 
							
								    struct logical_not {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the unary prefix ++ operator.
							 | 
						||
| 
								 | 
							
								    struct pre_inc {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the unary prefix -- operator.
							 | 
						||
| 
								 | 
							
								    struct pre_dec {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the unary postfix ++ operator.
							 | 
						||
| 
								 | 
							
								    struct post_inc {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the unary postfix -- operator.
							 | 
						||
| 
								 | 
							
								    struct post_dec {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary \<\< operator.
							 | 
						||
| 
								 | 
							
								    struct shift_left {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary \>\> operator.
							 | 
						||
| 
								 | 
							
								    struct shift_right {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary * operator.
							 | 
						||
| 
								 | 
							
								    struct multiplies {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary / operator.
							 | 
						||
| 
								 | 
							
								    struct divides {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary % operator.
							 | 
						||
| 
								 | 
							
								    struct modulus {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary + operator.
							 | 
						||
| 
								 | 
							
								    struct plus {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary - operator.
							 | 
						||
| 
								 | 
							
								    struct minus {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary \< operator.
							 | 
						||
| 
								 | 
							
								    struct less {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary \> operator.
							 | 
						||
| 
								 | 
							
								    struct greater {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary \<= operator.
							 | 
						||
| 
								 | 
							
								    struct less_equal {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary \>= operator.
							 | 
						||
| 
								 | 
							
								    struct greater_equal {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary == operator.
							 | 
						||
| 
								 | 
							
								    struct equal_to {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary != operator.
							 | 
						||
| 
								 | 
							
								    struct not_equal_to {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary || operator.
							 | 
						||
| 
								 | 
							
								    struct logical_or {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary && operator.
							 | 
						||
| 
								 | 
							
								    struct logical_and {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary & operator.
							 | 
						||
| 
								 | 
							
								    struct bitwise_and {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary | operator.
							 | 
						||
| 
								 | 
							
								    struct bitwise_or {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary ^ operator.
							 | 
						||
| 
								 | 
							
								    struct bitwise_xor {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary , operator.
							 | 
						||
| 
								 | 
							
								    struct comma {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary ->* operator.
							 | 
						||
| 
								 | 
							
								    struct mem_ptr {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary = operator.
							 | 
						||
| 
								 | 
							
								    struct assign {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary \<\<= operator.
							 | 
						||
| 
								 | 
							
								    struct shift_left_assign {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary \>\>= operator.
							 | 
						||
| 
								 | 
							
								    struct shift_right_assign {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary *= operator.
							 | 
						||
| 
								 | 
							
								    struct multiplies_assign {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary /= operator.
							 | 
						||
| 
								 | 
							
								    struct divides_assign {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary %= operator.
							 | 
						||
| 
								 | 
							
								    struct modulus_assign {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary += operator.
							 | 
						||
| 
								 | 
							
								    struct plus_assign {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary -= operator.
							 | 
						||
| 
								 | 
							
								    struct minus_assign {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary &= operator.
							 | 
						||
| 
								 | 
							
								    struct bitwise_and_assign {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary |= operator.
							 | 
						||
| 
								 | 
							
								    struct bitwise_or_assign {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary ^= operator.
							 | 
						||
| 
								 | 
							
								    struct bitwise_xor_assign {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary subscript operator.
							 | 
						||
| 
								 | 
							
								    struct subscript {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the binary virtual data members.
							 | 
						||
| 
								 | 
							
								    struct member {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the ternary ?: conditional operator.
							 | 
						||
| 
								 | 
							
								    struct if_else_ {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Tag type for the n-ary function call operator.
							 | 
						||
| 
								 | 
							
								    struct function {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}}}}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 |