File indexing completed on 2025-12-15 10:02:09
0001
0002
0003
0004
0005
0006
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