std_bind_portable.cpp 640 B

12345678910111213141516171819202122232425262728293031
  1. // Function library
  2. // Copyright (C) 2001-2003 Douglas Gregor
  3. // Use, modification and distribution is subject to the Boost Software
  4. // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
  5. // http://www.boost.org/LICENSE_1_0.txt)
  6. // For more information, see http://www.boost.org/
  7. #include <boost/function.hpp>
  8. #include <iostream>
  9. #include <functional>
  10. struct X {
  11. int foo(int);
  12. };
  13. int X::foo(int x) { return -x; }
  14. int main()
  15. {
  16. #ifndef BOOST_NO_CXX98_BINDERS
  17. boost::function1<int, int> f;
  18. X x;
  19. f = std::bind1st(
  20. std::mem_fun(&X::foo), &x);
  21. f(5); // Call x.foo(5)
  22. #endif
  23. return 0;
  24. }