title: Usage of this next_combination code
body: <p>Currently I am trying to generate combinations from a vector that contains some integers. For now I want it to print out all of the combinations that are of length to_generate.
  I found this code at <a href="https://stackoverflow.com/questions/2211915/combination-and-permutation-in-c/2616837#2616837">combination and permutation in C++</a> that uses std::next_permutation to generate combinations. The next_combination code is as follows:</p>
  
  <pre><code>template&lt;class RandIt, class Compare&gt;
  bool next_combination(RandIt first, RandIt mid, RandIt last, Compare comp)
  {
      std::sort(mid, last, std::tr1::bind(comp, std::tr1::placeholders::_2
                                          , std::tr1::placeholders::_1));
      return std::next_permutation(first, last, comp);
  }
  </code></pre>
  
  <p>I tried to call it like this:</p>
  
  <pre><code>bool mycomp (int c1, int c2)
  { return (c1)&lt;(c2); }
  
  
  void test_combos(int to_generate){
      std::vector&lt;int&gt; combo(30);
      for(int i=0;i&lt;30;++i){
          combo.push_back(i);
      }
      while(next_combination&lt;std::vector&lt;int&gt;::iterator,   bool&gt;(combo.begin(),combo.begin()+to_generate,combo.end(),mycomp)){
          for(std::vector&lt;int&gt;::iterator iter = combo.begin(); iter != combo.end() ; ++iter){
              std::cout &lt;&lt; *iter &lt;&lt; " ";
          }
      }
  }
  </code></pre>
  
  <p>but I get a huge stl garbled error message. Is there anything really obvious going wrong here?</p>
  
  <p>Which headers can I find std::placeholder?</p>
  
  <p>As requested, here is the error message:</p>
  
  <pre>
  $ make
  g++ -g -std=c++0x -I /usr/lib/ -c equity.cpp
  In file included from /usr/include/c++/4.4/algorithm:62,
                   from misc.hpp:6,
                   from equity.cpp:3:
  /usr/include/c++/4.4/bits/stl_algo.h: In function ‘bool std::next_permutation(_BIter, _BIter, _Compare) [with _BIter = __gnu_cxx::__normal_iterator > >, _Compare = bool]’:
  misc.hpp:15:   instantiated from ‘bool next_combination(RandIt, RandIt, RandIt, Compare) [with RandIt = __gnu_cxx::__normal_iterator > >, Compare = bool]’
  equity.cpp:28:   instantiated from here
  /usr/include/c++/4.4/bits/stl_algo.h:3655: error: ‘__comp’ cannot be used as a function
  /usr/include/c++/4.4/bits/stl_algo.h:3658: error: ‘__comp’ cannot be used as a function
  In file included from /usr/include/c++/4.4/functional:70,
                   from /usr/include/c++/4.4/memory:70,
                   from /usr/include/boost/config/no_tr1/memory.hpp:21,
                   from /usr/include/boost/get_pointer.hpp:12,
                   from /usr/include/boost/bind/mem_fn.hpp:25,
                   from /usr/include/boost/mem_fn.hpp:22,
                   from /usr/include/boost/bind/bind.hpp:26,
                   from /usr/include/boost/bind.hpp:22,
                   from misc.hpp:4,
                   from equity.cpp:3:
  /usr/include/c++/4.4/tr1_impl/functional: At global scope:
  /usr/include/c++/4.4/tr1_impl/functional: In instantiation of ‘std::_Result_of_impl’:
  /usr/include/c++/4.4/tr1_impl/functional:149:   instantiated from ‘std::result_of’
  /usr/include/c++/4.4/bits/stl_algo.h:124:   instantiated from ‘const _Tp& std::__median(const _Tp&, const _Tp&, const _Tp&, _Compare) [with _Tp = int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:2301:   instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Size = long int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:5258:   instantiated from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  misc.hpp:13:   instantiated from ‘bool next_combination(RandIt, RandIt, RandIt, Compare) [with RandIt = __gnu_cxx::__normal_iterator > >, Compare = bool]’
  equity.cpp:28:   instantiated from here
  /usr/include/c++/4.4/tr1_impl/functional:195: error: ‘const volatile bool’ is not a class, struct, or union type
  /usr/include/c++/4.4/tr1_impl/functional: In instantiation of ‘std::_Result_of_impl’:
  /usr/include/c++/4.4/tr1_impl/functional:149:   instantiated from ‘std::result_of’
  /usr/include/c++/4.4/bits/stl_algo.h:124:   instantiated from ‘const _Tp& std::__median(const _Tp&, const _Tp&, const _Tp&, _Compare) [with _Tp = int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:2301:   instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Size = long int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:5258:   instantiated from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  misc.hpp:13:   instantiated from ‘bool next_combination(RandIt, RandIt, RandIt, Compare) [with RandIt = __gnu_cxx::__normal_iterator > >, Compare = bool]’
  equity.cpp:28:   instantiated from here
  /usr/include/c++/4.4/tr1_impl/functional:195: error: ‘volatile bool’ is not a class, struct, or union type
  /usr/include/c++/4.4/tr1_impl/functional: In instantiation of ‘std::_Result_of_impl’:
  /usr/include/c++/4.4/tr1_impl/functional:149:   instantiated from ‘std::result_of’
  /usr/include/c++/4.4/bits/stl_algo.h:124:   instantiated from ‘const _Tp& std::__median(const _Tp&, const _Tp&, const _Tp&, _Compare) [with _Tp = int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:2301:   instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Size = long int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:5258:   instantiated from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  misc.hpp:13:   instantiated from ‘bool next_combination(RandIt, RandIt, RandIt, Compare) [with RandIt = __gnu_cxx::__normal_iterator > >, Compare = bool]’
  equity.cpp:28:   instantiated from here
  /usr/include/c++/4.4/tr1_impl/functional:195: error: ‘const bool’ is not a class, struct, or union type
  /usr/include/c++/4.4/tr1_impl/functional: In instantiation of ‘std::_Result_of_impl’:
  /usr/include/c++/4.4/tr1_impl/functional:149:   instantiated from ‘std::result_of’
  /usr/include/c++/4.4/bits/stl_algo.h:124:   instantiated from ‘const _Tp& std::__median(const _Tp&, const _Tp&, const _Tp&, _Compare) [with _Tp = int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:2301:   instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Size = long int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:5258:   instantiated from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  misc.hpp:13:   instantiated from ‘bool next_combination(RandIt, RandIt, RandIt, Compare) [with RandIt = __gnu_cxx::__normal_iterator > >, Compare = bool]’
  equity.cpp:28:   instantiated from here
  /usr/include/c++/4.4/tr1_impl/functional:195: error: ‘bool’ is not a class, struct, or union type
  In file included from /usr/include/c++/4.4/algorithm:62,
                   from misc.hpp:6,
                   from equity.cpp:3:
  /usr/include/c++/4.4/bits/stl_algo.h: In function ‘const _Tp& std::__median(const _Tp&, const _Tp&, const _Tp&, _Compare) [with _Tp = int, _Compare = std::_Bind, std::_Placeholder)>]’:
  /usr/include/c++/4.4/bits/stl_algo.h:2301:   instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Size = long int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:5258:   instantiated from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  misc.hpp:13:   instantiated from ‘bool next_combination(RandIt, RandIt, RandIt, Compare) [with RandIt = __gnu_cxx::__normal_iterator > >, Compare = bool]’
  equity.cpp:28:   instantiated from here
  /usr/include/c++/4.4/bits/stl_algo.h:124: error: no match for call to ‘(std::_Bind, std::_Placeholder)>) (const int&, const int&)’
  /usr/include/c++/4.4/bits/stl_algo.h:125: error: no match for call to ‘(std::_Bind, std::_Placeholder)>) (const int&, const int&)’
  /usr/include/c++/4.4/bits/stl_algo.h:127: error: no match for call to ‘(std::_Bind, std::_Placeholder)>) (const int&, const int&)’
  /usr/include/c++/4.4/bits/stl_algo.h:131: error: no match for call to ‘(std::_Bind, std::_Placeholder)>) (const int&, const int&)’
  /usr/include/c++/4.4/bits/stl_algo.h:133: error: no match for call to ‘(std::_Bind, std::_Placeholder)>) (const int&, const int&)’
  In file included from /usr/include/c++/4.4/functional:70,
                   from /usr/include/c++/4.4/memory:70,
                   from /usr/include/boost/config/no_tr1/memory.hpp:21,
                   from /usr/include/boost/get_pointer.hpp:12,
                   from /usr/include/boost/bind/mem_fn.hpp:25,
                   from /usr/include/boost/mem_fn.hpp:22,
                   from /usr/include/boost/bind/bind.hpp:26,
                   from /usr/include/boost/bind.hpp:22,
                   from misc.hpp:4,
                   from equity.cpp:3:
  /usr/include/c++/4.4/tr1_impl/functional: At global scope:
  /usr/include/c++/4.4/tr1_impl/functional: In instantiation of ‘std::_Result_of_impl’:
  /usr/include/c++/4.4/tr1_impl/functional:149:   instantiated from ‘std::result_of’
  /usr/include/c++/4.4/bits/stl_algo.h:2230:   instantiated from ‘_RandomAccessIterator std::__unguarded_partition(_RandomAccessIterator, _RandomAccessIterator, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Tp = int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:2301:   instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Size = long int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:5258:   instantiated from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  misc.hpp:13:   instantiated from ‘bool next_combination(RandIt, RandIt, RandIt, Compare) [with RandIt = __gnu_cxx::__normal_iterator > >, Compare = bool]’
  equity.cpp:28:   instantiated from here
  /usr/include/c++/4.4/tr1_impl/functional:195: error: ‘const volatile bool’ is not a class, struct, or union type
  /usr/include/c++/4.4/tr1_impl/functional: In instantiation of ‘std::_Result_of_impl’:
  /usr/include/c++/4.4/tr1_impl/functional:149:   instantiated from ‘std::result_of’
  /usr/include/c++/4.4/bits/stl_algo.h:2230:   instantiated from ‘_RandomAccessIterator std::__unguarded_partition(_RandomAccessIterator, _RandomAccessIterator, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Tp = int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:2301:   instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Size = long int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:5258:   instantiated from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  misc.hpp:13:   instantiated from ‘bool next_combination(RandIt, RandIt, RandIt, Compare) [with RandIt = __gnu_cxx::__normal_iterator > >, Compare = bool]’
  equity.cpp:28:   instantiated from here
  /usr/include/c++/4.4/tr1_impl/functional:195: error: ‘volatile bool’ is not a class, struct, or union type
  /usr/include/c++/4.4/tr1_impl/functional: In instantiation of ‘std::_Result_of_impl’:
  /usr/include/c++/4.4/tr1_impl/functional:149:   instantiated from ‘std::result_of’
  /usr/include/c++/4.4/bits/stl_algo.h:2230:   instantiated from ‘_RandomAccessIterator std::__unguarded_partition(_RandomAccessIterator, _RandomAccessIterator, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Tp = int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:2301:   instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Size = long int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:5258:   instantiated from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  misc.hpp:13:   instantiated from ‘bool next_combination(RandIt, RandIt, RandIt, Compare) [with RandIt = __gnu_cxx::__normal_iterator > >, Compare = bool]’
  equity.cpp:28:   instantiated from here
  /usr/include/c++/4.4/tr1_impl/functional:195: error: ‘const bool’ is not a class, struct, or union type
  /usr/include/c++/4.4/tr1_impl/functional: In instantiation of ‘std::_Result_of_impl’:
  /usr/include/c++/4.4/tr1_impl/functional:149:   instantiated from ‘std::result_of’
  /usr/include/c++/4.4/bits/stl_algo.h:2230:   instantiated from ‘_RandomAccessIterator std::__unguarded_partition(_RandomAccessIterator, _RandomAccessIterator, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Tp = int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:2301:   instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Size = long int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:5258:   instantiated from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  misc.hpp:13:   instantiated from ‘bool next_combination(RandIt, RandIt, RandIt, Compare) [with RandIt = __gnu_cxx::__normal_iterator > >, Compare = bool]’
  equity.cpp:28:   instantiated from here
  /usr/include/c++/4.4/tr1_impl/functional:195: error: ‘bool’ is not a class, struct, or union type
  In file included from /usr/include/c++/4.4/algorithm:62,
                   from misc.hpp:6,
                   from equity.cpp:3:
  /usr/include/c++/4.4/bits/stl_algo.h: In function ‘_RandomAccessIterator std::__unguarded_partition(_RandomAccessIterator, _RandomAccessIterator, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Tp = int, _Compare = std::_Bind, std::_Placeholder)>]’:
  /usr/include/c++/4.4/bits/stl_algo.h:2301:   instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Size = long int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:5258:   instantiated from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  misc.hpp:13:   instantiated from ‘bool next_combination(RandIt, RandIt, RandIt, Compare) [with RandIt = __gnu_cxx::__normal_iterator > >, Compare = bool]’
  equity.cpp:28:   instantiated from here
  /usr/include/c++/4.4/bits/stl_algo.h:2230: error: no match for call to ‘(std::_Bind, std::_Placeholder)>) (int&, int&)’
  /usr/include/c++/4.4/bits/stl_algo.h:2233: error: no match for call to ‘(std::_Bind, std::_Placeholder)>) (int&, int&)’
  /usr/include/c++/4.4/bits/stl_algo.h: In function ‘void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’:
  /usr/include/c++/4.4/bits/stl_algo.h:2193:   instantiated from ‘void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:5260:   instantiated from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  misc.hpp:13:   instantiated from ‘bool next_combination(RandIt, RandIt, RandIt, Compare) [with RandIt = __gnu_cxx::__normal_iterator > >, Compare = bool]’
  equity.cpp:28:   instantiated from here
  /usr/include/c++/4.4/bits/stl_algo.h:2128: error: no match for call to ‘(std::_Bind, std::_Placeholder)>) (int&, int&)’
  /usr/include/c++/4.4/bits/stl_algo.h: In function ‘void std::__heap_select(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’:
  /usr/include/c++/4.4/bits/stl_algo.h:5108:   instantiated from ‘void std::partial_sort(_RAIter, _RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:2288:   instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Size = long int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:5258:   instantiated from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  misc.hpp:13:   instantiated from ‘bool next_combination(RandIt, RandIt, RandIt, Compare) [with RandIt = __gnu_cxx::__normal_iterator > >, Compare = bool]’
  equity.cpp:28:   instantiated from here
  /usr/include/c++/4.4/bits/stl_algo.h:1919: error: no match for call to ‘(std::_Bind, std::_Placeholder)>) (int&, int&)’
  /usr/include/c++/4.4/bits/stl_algo.h: In function ‘void std::__unguarded_linear_insert(_RandomAccessIterator, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Tp = int, _Compare = std::_Bind, std::_Placeholder)>]’:
  /usr/include/c++/4.4/bits/stl_algo.h:2134:   instantiated from ‘void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:2193:   instantiated from ‘void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:5260:   instantiated from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  misc.hpp:13:   instantiated from ‘bool next_combination(RandIt, RandIt, RandIt, Compare) [with RandIt = __gnu_cxx::__normal_iterator > >, Compare = bool]’
  equity.cpp:28:   instantiated from here
  /usr/include/c++/4.4/bits/stl_algo.h:2084: error: no match for call to ‘(std::_Bind, std::_Placeholder)>) (int&, int&)’
  In file included from /usr/include/c++/4.4/bits/stl_algo.h:62,
                   from /usr/include/c++/4.4/algorithm:62,
                   from misc.hpp:6,
                   from equity.cpp:3:
  /usr/include/c++/4.4/bits/stl_heap.h: In function ‘void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Distance = long int, _Tp = int, _Compare = std::_Bind, std::_Placeholder)>]’:
  /usr/include/c++/4.4/bits/stl_heap.h:434:   instantiated from ‘void std::make_heap(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:1917:   instantiated from ‘void std::__heap_select(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:5108:   instantiated from ‘void std::partial_sort(_RAIter, _RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:2288:   instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Size = long int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:5258:   instantiated from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  misc.hpp:13:   instantiated from ‘bool next_combination(RandIt, RandIt, RandIt, Compare) [with RandIt = __gnu_cxx::__normal_iterator > >, Compare = bool]’
  equity.cpp:28:   instantiated from here
  /usr/include/c++/4.4/bits/stl_heap.h:303: error: no match for call to ‘(std::_Bind, std::_Placeholder)>) (int&, int&)’
  /usr/include/c++/4.4/bits/stl_heap.h: In function ‘void std::__push_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Distance = long int, _Tp = int, _Compare = std::_Bind, std::_Placeholder)>]’:
  /usr/include/c++/4.4/bits/stl_heap.h:316:   instantiated from ‘void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Distance = long int, _Tp = int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_heap.h:434:   instantiated from ‘void std::make_heap(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:1917:   instantiated from ‘void std::__heap_select(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:5108:   instantiated from ‘void std::partial_sort(_RAIter, _RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:2288:   instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Size = long int, _Compare = std::_Bind, std::_Placeholder)>]’
  /usr/include/c++/4.4/bits/stl_algo.h:5258:   instantiated from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator > >, _Compare = std::_Bind, std::_Placeholder)>]’
  misc.hpp:13:   instantiated from ‘bool next_combination(RandIt, RandIt, RandIt, Compare) [with RandIt = __gnu_cxx::__normal_iterator > >, Compare = bool]’
  equity.cpp:28:   instantiated from here
  /usr/include/c++/4.4/bits/stl_heap.h:180: error: no match for call to ‘(std::_Bind, std::_Placeholder)>) (int&, int&)’
  make: *** [equity.o] Error 1
  </pre>