]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | /*============================================================================== |
2 | Copyright (c) 2001-2010 Joel de Guzman | |
3 | Copyright (c) 2010 Thomas Heller | |
4 | ||
5 | Distributed under the Boost Software License, Version 1.0. (See accompanying | |
6 | file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
7 | ==============================================================================*/ | |
8 | #ifndef BOOST_PHOENIX_OBJECT_DELETE_HPP | |
9 | #define BOOST_PHOENIX_OBJECT_DELETE_HPP | |
10 | ||
11 | #include <boost/phoenix/core/limits.hpp> | |
12 | #include <boost/phoenix/core/expression.hpp> | |
13 | #include <boost/phoenix/core/meta_grammar.hpp> | |
14 | #include <boost/phoenix/core/call.hpp> | |
15 | ||
16 | BOOST_PHOENIX_DEFINE_EXPRESSION( | |
17 | (boost)(phoenix)(delete_) | |
18 | , (meta_grammar) | |
19 | ) | |
20 | ||
21 | namespace boost { namespace phoenix | |
22 | { | |
23 | struct delete_eval | |
24 | { | |
25 | typedef void result_type; | |
26 | ||
27 | template <typename P, typename Context> | |
28 | result_type | |
29 | operator()(P const& p, Context const &ctx) const | |
30 | { | |
31 | delete boost::phoenix::eval(p, ctx); | |
32 | } | |
33 | }; | |
34 | ||
35 | template <typename Dummy> | |
36 | struct default_actions::when<rule::delete_, Dummy> | |
37 | : call<delete_eval> | |
38 | {}; | |
39 | ||
40 | template <typename P> | |
41 | inline | |
42 | typename expression::delete_<P>::type const | |
43 | delete_(P const& p) | |
44 | { | |
45 | return expression::delete_<P>::make(p); | |
46 | } | |
47 | ||
48 | }} | |
49 | ||
50 | #endif |