]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/phoenix/include/boost/phoenix/core/domain.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / phoenix / include / boost / phoenix / core / domain.hpp
CommitLineData
7c673cae
FG
1/*=============================================================================
2 Copyright (c) 2005-2010 Joel de Guzman
3 Copyright (c) 2010 Eric Niebler
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_CORE_DOMAIN_HPP
9#define BOOST_PHOENIX_CORE_DOMAIN_HPP
10
11#include <boost/phoenix/core/limits.hpp>
12#include <boost/proto/matches.hpp>
13#include <boost/proto/transform/call.hpp>
14#include <boost/proto/transform/when.hpp>
15#include <boost/proto/domain.hpp>
16
17namespace boost { namespace phoenix
18{
19 template <typename Expr>
20 struct actor;
21
22 struct meta_grammar;
23
24 struct phoenix_generator
25 : proto::switch_<phoenix_generator>
26 {
27
28 BOOST_PROTO_USE_BASIC_EXPR()
29
30 template<typename Tag>
31 struct case_
32 : proto::otherwise<proto::call<proto::pod_generator<actor>(proto::_)> >
33 {};
34 };
35
36 struct phoenix_default_domain
37 : proto::domain<
38 proto::basic_default_generator
39 , proto::_
40 , proto::basic_default_domain
41 >
42 {
43 template <typename T>
44 struct as_child
45 //: proto_base_domain::as_expr<T> // proto lambda example.
46 : as_expr<T>
47 {};
48 };
49
50 struct phoenix_domain
51 : proto::domain<
52 phoenix_generator
53 , meta_grammar
54 , proto::basic_default_domain
55 >
56 {
57 template <typename T>
58 struct as_child
59 //: proto_base_domain::as_expr<T> // proto lambda example.
60 : as_expr<T>
61 {};
62 };
63}}
64
65#endif