/*============================================================================== Copyright (c) 2001-2010 Joel de Guzman Copyright (c) 2010 Eric Niebler 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 BOOST_PHOENIX_FUNCTION_FUNCTION_HPP #define BOOST_PHOENIX_FUNCTION_FUNCTION_HPP //#include #include #include #include #include namespace boost { namespace phoenix { ///////////////////////////////////////////////////////////////////////////// // Functions ///////////////////////////////////////////////////////////////////////////// // functor which returns our lazy function call extension template struct function { function() {} function(F f) : f(f) {} template struct result; typename detail::expression::function_eval::type const operator()() const { return detail::expression::function_eval::make(f); } // Bring in the rest #include F f; }; } template struct result_of()> : phoenix::detail::expression::function_eval {}; } #endif