1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- /*==============================================================================
- Copyright (c) 2001-2010 Joel de Guzman
- Copyright (c) 2010 Thomas Heller
- 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_PHOENIX_OBJECT_DELETE_HPP
- #define BOOST_PHOENIX_OBJECT_DELETE_HPP
- #include <boost/phoenix/core/limits.hpp>
- #include <boost/phoenix/core/expression.hpp>
- #include <boost/phoenix/core/meta_grammar.hpp>
- #include <boost/phoenix/core/call.hpp>
- BOOST_PHOENIX_DEFINE_EXPRESSION(
- (boost)(phoenix)(delete_)
- , (meta_grammar)
- )
- namespace boost { namespace phoenix
- {
- struct delete_eval
- {
- typedef void result_type;
- template <typename P, typename Context>
- result_type
- operator()(P const& p, Context const &ctx) const
- {
- delete boost::phoenix::eval(p, ctx);
- }
- };
- template <typename Dummy>
- struct default_actions::when<rule::delete_, Dummy>
- : call<delete_eval>
- {};
- template <typename P>
- inline
- typename expression::delete_<P>::type const
- delete_(P const& p)
- {
- return expression::delete_<P>::make(p);
- }
- }}
- #endif
|