Mercurial > hg > vamp-build-and-test
view DEPENDENCIES/generic/include/boost/phoenix/function/function.hpp @ 60:01e6213c3f91
Merge
author | Chris Cannam |
---|---|
date | Fri, 12 Sep 2014 08:17:00 +0100 |
parents | 2665513ce2d3 |
children | c530137014c0 |
line wrap: on
line source
/*============================================================================== 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 <boost/config.hpp> //#include <boost/phoenix/function/function_handling.hpp> #include <boost/phoenix/core/detail/function_eval.hpp> #include <boost/preprocessor/facilities/expand.hpp> #include <boost/preprocessor/logical/or.hpp> #include <boost/utility/result_of.hpp> namespace boost { namespace phoenix { ///////////////////////////////////////////////////////////////////////////// // Functions ///////////////////////////////////////////////////////////////////////////// // functor which returns our lazy function call extension template<typename F> struct function { BOOST_CONSTEXPR function() : f() {} BOOST_CONSTEXPR function(F f) : f(f) {} template <typename Sig> struct result; typename detail::expression::function_eval<F>::type const operator()() const { return detail::expression::function_eval<F>::make(f); } // Bring in the rest #include <boost/phoenix/function/detail/function_operator.hpp> F f; }; } template<typename F> struct result_of<phoenix::function<F>()> : phoenix::detail::expression::function_eval<F> {}; } #endif