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
|