bind_function_object.hpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. /*=============================================================================
  2. Copyright (c) 2016 Kohei Takahashi
  3. Distributed under the Boost Software License, Version 1.0. (See accompanying
  4. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  5. ==============================================================================*/
  6. #ifndef PHOENIX_BIND_BIND_FUNCTION_OBJECT_HPP
  7. #define PHOENIX_BIND_BIND_FUNCTION_OBJECT_HPP
  8. #include <boost/phoenix/core/limits.hpp>
  9. #if defined(BOOST_PHOENIX_NO_VARIADIC_BIND)
  10. # include <boost/phoenix/bind/detail/cpp03/bind_function_object.hpp>
  11. #else
  12. #include <boost/phoenix/core/expression.hpp>
  13. #include <boost/phoenix/core/detail/function_eval.hpp>
  14. namespace boost { namespace phoenix
  15. {
  16. template <typename F>
  17. inline typename detail::expression::function_eval<F>::type const
  18. bind(F f)
  19. {
  20. return detail::expression::function_eval<F>::make(f);
  21. }
  22. template <typename F, typename... A>
  23. inline typename detail::expression::function_eval<F, A...>::type const
  24. bind(F f, A const&... a)
  25. {
  26. return detail::expression::function_eval<F, A...>::make(f, a...);
  27. }
  28. }} // namespace boost::phoenix
  29. #endif
  30. #endif