Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-15 10:02:09

0001 /*==============================================================================
0002     Copyright (c) 2001-2010 Joel de Guzman
0003     Copyright (c) 2010 Thomas Heller
0004 
0005     Distributed under the Boost Software License, Version 1.0. (See accompanying
0006     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0007 ==============================================================================*/
0008 #ifndef BOOST_PHOENIX_OBJECT_DELETE_HPP
0009 #define BOOST_PHOENIX_OBJECT_DELETE_HPP
0010 
0011 #include <boost/phoenix/core/limits.hpp>
0012 #include <boost/phoenix/core/expression.hpp>
0013 #include <boost/phoenix/core/meta_grammar.hpp>
0014 #include <boost/phoenix/core/call.hpp>
0015 
0016 BOOST_PHOENIX_DEFINE_EXPRESSION(
0017     (boost)(phoenix)(delete_)
0018   , (meta_grammar)
0019 )
0020 
0021 namespace boost { namespace phoenix
0022 {
0023     struct delete_eval
0024     {
0025         typedef void result_type;
0026 
0027         template <typename P, typename Context>
0028         result_type
0029         operator()(P const& p, Context const &ctx) const
0030         {
0031             delete boost::phoenix::eval(p, ctx);
0032         }
0033     };
0034 
0035     template <typename Dummy>
0036     struct default_actions::when<rule::delete_, Dummy>
0037         : call<delete_eval>
0038     {};
0039 
0040     template <typename P>
0041     inline
0042     typename expression::delete_<P>::type const
0043     delete_(P const& p)
0044     {
0045         return expression::delete_<P>::make(p);
0046     }
0047 
0048 }}
0049 
0050 #endif