]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/phoenix/include/boost/phoenix/core/is_actor.hpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / phoenix / include / boost / phoenix / core / is_actor.hpp
1 /*==============================================================================
2 Copyright (c) 2005-2010 Joel de Guzman
3
4 Distributed under the Boost Software License, Version 1.0. (See accompanying
5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 ==============================================================================*/
7 #ifndef BOOST_PHOENIX_CORE_IS_ACTOR_HPP
8 #define BOOST_PHOENIX_CORE_IS_ACTOR_HPP
9
10 #include <boost/mpl/bool.hpp>
11
12 // Note to Thomas and any future maintainer: please make this as
13 // lightweight as possible (as it is right now).
14
15 namespace boost { namespace phoenix
16 {
17 ///////////////////////////////////////////////////////////////////////////////
18 //
19 // is_actor<T>
20 //
21 // Tests if T is an actor. Evaluates to mpl::true_ or mpl::false_
22 //
23 ///////////////////////////////////////////////////////////////////////////////
24
25 template <typename Expr>
26 struct actor;
27
28 template <typename T, typename Enable = void>
29 struct is_actor
30 : mpl::false_
31 {};
32
33 template <typename T>
34 struct is_actor<T const>
35 : is_actor<T>
36 {};
37
38 template <typename T>
39 struct is_actor<T &>
40 : is_actor<T>
41 {};
42
43 template <typename Expr>
44 struct is_actor<actor<Expr> >
45 : mpl::true_
46 {};
47 }}
48
49 #endif