/*============================================================================= 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_FUNCTION_FUNCTION_HPP #define PHOENIX_FUNCTION_FUNCTION_HPP #include #include namespace boost { namespace phoenix { template struct function { function() : f() {} function(F const& f) : f(f) {} actor, F>::type> operator()() const { return compose >(f); } template actor, F, A0>::type> operator()(A0 const& _0) const { return compose >(f, _0); } template actor, F, A0, A1>::type> operator()(A0 const& _0, A1 const& _1) const { return compose >(f, _0, _1); } // Bring in the rest of the function call operators #include F f; }; }} #endif