Advertisement
Guest User

Untitled

a guest
Nov 25th, 2011
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.74 KB | None | 0 0
  1. #include <boost/phoenix/core.hpp>
  2. #include <boost/phoenix/function.hpp>
  3. #include <iostream>
  4. #include <string>
  5. #include <vector>
  6. #include <algorithm>
  7.  
  8. template<typename T>
  9. struct Var
  10. {
  11. void setMax(int i) {}
  12. void setMin(int i) {}
  13. int getMax() { return 0; }
  14. int getMin() { return 0; }
  15. };
  16.  
  17. namespace impl
  18. {
  19. template <typename T1>
  20. void squeeze(T1 t, int i)
  21. {
  22. t.first.setMax(t.second.getMax() - i);
  23. t.second.setMin(t.first.getMin() + i);
  24. }
  25. }
  26.  
  27. BOOST_PHOENIX_ADAPT_FUNCTION(void, squeeze, impl::squeeze, 2)
  28.  
  29. int main()
  30. {
  31. using boost::phoenix::arg_names::_1;
  32. std::vector<std::pair<Var<int>, Var<double> > > vec;
  33. std::for_each(vec.begin(), vec.end(), squeeze(_1, 2));
  34. }
  35.  
  36.  
  37.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement