Mercurial > hg > vamp-build-and-test
view DEPENDENCIES/generic/include/boost/phoenix/function/function.hpp @ 133:4acb5d8d80b6 tip
Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author | Chris Cannam |
---|---|
date | Tue, 30 Jul 2019 12:25:44 +0100 |
parents | c530137014c0 |
children |
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/phoenix/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 ///////////////////////////////////////////////////////////////////////////// namespace expression { template <typename F, BOOST_PHOENIX_typename_A_void(BOOST_PHOENIX_ACTOR_LIMIT)> struct function : detail::expression::function_eval<F, BOOST_PHOENIX_A(BOOST_PHOENIX_ACTOR_LIMIT)> {}; } // 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