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