Chris@16: // -- operator_actions.hpp - Boost Lambda Library ---------------------- Chris@16: Chris@16: // Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi) Chris@16: // Chris@16: // Distributed under the Boost Software License, Version 1.0. (See Chris@16: // accompanying file LICENSE_1_0.txt or copy at Chris@16: // http://www.boost.org/LICENSE_1_0.txt) Chris@16: Chris@16: // For more information, see http://lambda.cs.utu.fi Chris@16: Chris@16: #ifndef BOOST_LAMBDA_OPERATOR_ACTIONS_HPP Chris@16: #define BOOST_LAMBDA_OPERATOR_ACTIONS_HPP Chris@16: Chris@16: namespace boost { Chris@16: namespace lambda { Chris@16: Chris@16: Chris@16: // -- artihmetic ---------------------- Chris@16: Chris@16: class plus_action {}; Chris@16: class minus_action {}; Chris@16: class multiply_action {}; Chris@16: class divide_action {}; Chris@16: class remainder_action {}; Chris@16: Chris@16: // -- bitwise ------------------- Chris@16: Chris@16: class leftshift_action {}; Chris@16: class rightshift_action {}; Chris@16: class xor_action {}; Chris@16: Chris@16: Chris@16: // -- bitwise/logical ------------------- Chris@16: Chris@16: class and_action {}; Chris@16: class or_action {}; Chris@16: class not_action {}; Chris@16: Chris@16: // -- relational ------------------------- Chris@16: Chris@16: class less_action {}; Chris@16: class greater_action {}; Chris@16: class lessorequal_action {}; Chris@16: class greaterorequal_action {}; Chris@16: class equal_action {}; Chris@16: class notequal_action {}; Chris@16: Chris@16: // -- increment/decrement ------------------------------ Chris@16: Chris@16: class increment_action {}; Chris@16: class decrement_action {}; Chris@16: Chris@16: // -- void return ------------------------------ Chris@16: Chris@16: // -- other ------------------------------ Chris@16: Chris@16: class addressof_action {}; Chris@16: // class comma_action {}; // defined in actions.hpp Chris@16: class contentsof_action {}; Chris@16: // class member_pointer_action {}; (defined in member_ptr.hpp) Chris@16: Chris@16: Chris@16: // -- actioun group templates -------------------- Chris@16: Chris@16: template class arithmetic_action; Chris@16: template class bitwise_action; Chris@16: template class logical_action; Chris@16: template class relational_action; Chris@16: template class arithmetic_assignment_action; Chris@16: template class bitwise_assignment_action; Chris@16: template class unary_arithmetic_action; Chris@16: template class pre_increment_decrement_action; Chris@16: template class post_increment_decrement_action; Chris@16: Chris@16: // --------------------------------------------------------- Chris@16: Chris@16: // actions, for which the existence of protect is checked in return type Chris@16: // deduction. Chris@16: Chris@16: template struct is_protectable > { Chris@16: BOOST_STATIC_CONSTANT(bool, value = true); Chris@16: }; Chris@16: template struct is_protectable > { Chris@16: BOOST_STATIC_CONSTANT(bool, value = true); Chris@16: }; Chris@16: template struct is_protectable > { Chris@16: BOOST_STATIC_CONSTANT(bool, value = true); Chris@16: }; Chris@16: template struct is_protectable > { Chris@16: BOOST_STATIC_CONSTANT(bool, value = true); Chris@16: }; Chris@16: template Chris@16: struct is_protectable > { Chris@16: BOOST_STATIC_CONSTANT(bool, value = true); Chris@16: }; Chris@16: template struct is_protectable > { Chris@16: BOOST_STATIC_CONSTANT(bool, value = true); Chris@16: }; Chris@16: template struct is_protectable > { Chris@16: BOOST_STATIC_CONSTANT(bool, value = true); Chris@16: }; Chris@16: template Chris@16: struct is_protectable > { Chris@16: BOOST_STATIC_CONSTANT(bool, value = true); Chris@16: }; Chris@16: template struct Chris@16: is_protectable > { Chris@16: BOOST_STATIC_CONSTANT(bool, value = true); Chris@16: }; Chris@16: Chris@16: template <> struct is_protectable > { Chris@16: BOOST_STATIC_CONSTANT(bool, value = true); Chris@16: }; Chris@16: template <> struct is_protectable > { Chris@16: BOOST_STATIC_CONSTANT(bool, value = true); Chris@16: }; Chris@16: Chris@16: template<> struct is_protectable > { Chris@16: BOOST_STATIC_CONSTANT(bool, value = true); Chris@16: }; Chris@16: template<> struct is_protectable > { Chris@16: BOOST_STATIC_CONSTANT(bool, value = true); Chris@16: }; Chris@16: Chris@16: // NOTE: comma action is also protectable, but the specialization is Chris@16: // in actions.hpp Chris@16: Chris@16: Chris@16: } // namespace lambda Chris@16: } // namespace boost Chris@16: Chris@16: #endif Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: