| /*============================================================================= |
| Copyright (c) 2001-2007 Joel de Guzman |
| |
| Distributed under the Boost Software License, Version 1.0. (See accompanying |
| file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
| ==============================================================================*/ |
| #ifndef PHOENIX_OPERATOR_DETAIL_BINARY_COMPOSE_HPP |
| #define PHOENIX_OPERATOR_DETAIL_BINARY_COMPOSE_HPP |
| |
| #define PHOENIX_BINARY_COMPOSE(eval_name, op) \ |
| template <typename T0, typename T1> \ |
| inline actor<typename as_composite<eval_name, actor<T0>, actor<T1> >::type> \ |
| operator op (actor<T0> const& a0, actor<T1> const& a1) \ |
| { \ |
| return compose<eval_name>(a0, a1); \ |
| } \ |
| \ |
| template <typename T0, typename T1> \ |
| inline actor<typename as_composite<eval_name, actor<T0>, T1>::type> \ |
| operator op (actor<T0> const& a0, T1 const& a1) \ |
| { \ |
| return compose<eval_name>(a0, a1); \ |
| } \ |
| \ |
| template <typename T0, typename T1> \ |
| inline actor<typename as_composite<eval_name, T0, actor<T1> >::type> \ |
| operator op (T0 const& a0, actor<T1> const& a1) \ |
| { \ |
| return compose<eval_name>(a0, a1); \ |
| } |
| |
| #endif |