annotate DEPENDENCIES/generic/include/boost/lambda/detail/operator_actions.hpp @ 125:34e428693f5d vext

Vext -> Repoint
author Chris Cannam
date Thu, 14 Jun 2018 11:15:39 +0100
parents 2665513ce2d3
children
rev   line source
Chris@16 1 // -- operator_actions.hpp - Boost Lambda Library ----------------------
Chris@16 2
Chris@16 3 // Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
Chris@16 4 //
Chris@16 5 // Distributed under the Boost Software License, Version 1.0. (See
Chris@16 6 // accompanying file LICENSE_1_0.txt or copy at
Chris@16 7 // http://www.boost.org/LICENSE_1_0.txt)
Chris@16 8
Chris@16 9 // For more information, see http://lambda.cs.utu.fi
Chris@16 10
Chris@16 11 #ifndef BOOST_LAMBDA_OPERATOR_ACTIONS_HPP
Chris@16 12 #define BOOST_LAMBDA_OPERATOR_ACTIONS_HPP
Chris@16 13
Chris@16 14 namespace boost {
Chris@16 15 namespace lambda {
Chris@16 16
Chris@16 17
Chris@16 18 // -- artihmetic ----------------------
Chris@16 19
Chris@16 20 class plus_action {};
Chris@16 21 class minus_action {};
Chris@16 22 class multiply_action {};
Chris@16 23 class divide_action {};
Chris@16 24 class remainder_action {};
Chris@16 25
Chris@16 26 // -- bitwise -------------------
Chris@16 27
Chris@16 28 class leftshift_action {};
Chris@16 29 class rightshift_action {};
Chris@16 30 class xor_action {};
Chris@16 31
Chris@16 32
Chris@16 33 // -- bitwise/logical -------------------
Chris@16 34
Chris@16 35 class and_action {};
Chris@16 36 class or_action {};
Chris@16 37 class not_action {};
Chris@16 38
Chris@16 39 // -- relational -------------------------
Chris@16 40
Chris@16 41 class less_action {};
Chris@16 42 class greater_action {};
Chris@16 43 class lessorequal_action {};
Chris@16 44 class greaterorequal_action {};
Chris@16 45 class equal_action {};
Chris@16 46 class notequal_action {};
Chris@16 47
Chris@16 48 // -- increment/decrement ------------------------------
Chris@16 49
Chris@16 50 class increment_action {};
Chris@16 51 class decrement_action {};
Chris@16 52
Chris@16 53 // -- void return ------------------------------
Chris@16 54
Chris@16 55 // -- other ------------------------------
Chris@16 56
Chris@16 57 class addressof_action {};
Chris@16 58 // class comma_action {}; // defined in actions.hpp
Chris@16 59 class contentsof_action {};
Chris@16 60 // class member_pointer_action {}; (defined in member_ptr.hpp)
Chris@16 61
Chris@16 62
Chris@16 63 // -- actioun group templates --------------------
Chris@16 64
Chris@16 65 template <class Action> class arithmetic_action;
Chris@16 66 template <class Action> class bitwise_action;
Chris@16 67 template <class Action> class logical_action;
Chris@16 68 template <class Action> class relational_action;
Chris@16 69 template <class Action> class arithmetic_assignment_action;
Chris@16 70 template <class Action> class bitwise_assignment_action;
Chris@16 71 template <class Action> class unary_arithmetic_action;
Chris@16 72 template <class Action> class pre_increment_decrement_action;
Chris@16 73 template <class Action> class post_increment_decrement_action;
Chris@16 74
Chris@16 75 // ---------------------------------------------------------
Chris@16 76
Chris@16 77 // actions, for which the existence of protect is checked in return type
Chris@16 78 // deduction.
Chris@16 79
Chris@16 80 template <class Act> struct is_protectable<arithmetic_action<Act> > {
Chris@16 81 BOOST_STATIC_CONSTANT(bool, value = true);
Chris@16 82 };
Chris@16 83 template <class Act> struct is_protectable<bitwise_action<Act> > {
Chris@16 84 BOOST_STATIC_CONSTANT(bool, value = true);
Chris@16 85 };
Chris@16 86 template <class Act> struct is_protectable<logical_action<Act> > {
Chris@16 87 BOOST_STATIC_CONSTANT(bool, value = true);
Chris@16 88 };
Chris@16 89 template <class Act> struct is_protectable<relational_action<Act> > {
Chris@16 90 BOOST_STATIC_CONSTANT(bool, value = true);
Chris@16 91 };
Chris@16 92 template <class Act>
Chris@16 93 struct is_protectable<arithmetic_assignment_action<Act> > {
Chris@16 94 BOOST_STATIC_CONSTANT(bool, value = true);
Chris@16 95 };
Chris@16 96 template <class Act> struct is_protectable<bitwise_assignment_action<Act> > {
Chris@16 97 BOOST_STATIC_CONSTANT(bool, value = true);
Chris@16 98 };
Chris@16 99 template <class Act> struct is_protectable<unary_arithmetic_action<Act> > {
Chris@16 100 BOOST_STATIC_CONSTANT(bool, value = true);
Chris@16 101 };
Chris@16 102 template <class Act>
Chris@16 103 struct is_protectable<pre_increment_decrement_action<Act> > {
Chris@16 104 BOOST_STATIC_CONSTANT(bool, value = true);
Chris@16 105 };
Chris@16 106 template <class Act> struct
Chris@16 107 is_protectable<post_increment_decrement_action<Act> > {
Chris@16 108 BOOST_STATIC_CONSTANT(bool, value = true);
Chris@16 109 };
Chris@16 110
Chris@16 111 template <> struct is_protectable<other_action<addressof_action> > {
Chris@16 112 BOOST_STATIC_CONSTANT(bool, value = true);
Chris@16 113 };
Chris@16 114 template <> struct is_protectable<other_action<contentsof_action> > {
Chris@16 115 BOOST_STATIC_CONSTANT(bool, value = true);
Chris@16 116 };
Chris@16 117
Chris@16 118 template<> struct is_protectable<other_action<subscript_action> > {
Chris@16 119 BOOST_STATIC_CONSTANT(bool, value = true);
Chris@16 120 };
Chris@16 121 template<> struct is_protectable<other_action<assignment_action> > {
Chris@16 122 BOOST_STATIC_CONSTANT(bool, value = true);
Chris@16 123 };
Chris@16 124
Chris@16 125 // NOTE: comma action is also protectable, but the specialization is
Chris@16 126 // in actions.hpp
Chris@16 127
Chris@16 128
Chris@16 129 } // namespace lambda
Chris@16 130 } // namespace boost
Chris@16 131
Chris@16 132 #endif
Chris@16 133
Chris@16 134
Chris@16 135
Chris@16 136
Chris@16 137
Chris@16 138
Chris@16 139