/*============================================================================= 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_OBJECT_CONSTRUCT_HPP #define PHOENIX_OBJECT_CONSTRUCT_HPP #include #include namespace boost { namespace phoenix { namespace detail { template struct construct_eval { template struct result { typedef T type; }; template static RT eval(Env const& /*env*/) { return RT(); } template static RT eval(Env const& env, A0& _0) { return RT(_0.eval(env)); } template static RT eval(Env const& env, A0& _0, A1& _1) { return RT(_0.eval(env), _1.eval(env)); } // Bring in the rest of the evals #include }; } template inline actor >::type> construct() { return compose >(); } template inline actor, A0>::type> construct(A0 const& _0) { return compose >(_0); } template inline actor, A0, A1>::type> construct(A0 const& _0, A1 const& _1) { return compose >(_0, _1); } // Bring in the rest of the new_ functions #include }} #endif