1 /*=============================================================================
2 Copyright (c) 2001-2007 Joel de Guzman
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 PHOENIX_CORE_AS_ACTOR_HPP
8 #define PHOENIX_CORE_AS_ACTOR_HPP
10 #include <boost/spirit/home/phoenix/core/actor.hpp>
12 namespace boost { namespace phoenix
15 struct as_actor_base; // defined in value.hpp
17 template <typename Base>
18 struct as_actor_base<actor<Base> >
23 convert(actor<Base> const& x)
30 struct as_actor_base<fusion::void_>
32 typedef fusion::void_ type;
33 struct error_attempting_to_convert_void_type_to_an_actor {};
36 convert(error_attempting_to_convert_void_type_to_an_actor);
40 struct as_actor_base<void>
43 struct error_attempting_to_convert_void_type_to_an_actor {};
46 convert(error_attempting_to_convert_void_type_to_an_actor);
52 typedef actor<typename as_actor_base<T>::type> type;
57 return as_actor_base<T>::convert(x);