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);
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);