Using this next_combination code

I'm currently trying to create combinations from a vector that contains some integers. At the moment, I want it to print all combinations that have a length of to_generate. I found this code in combination and permutation in C ++ , which uses std :: next_permutation to generate combinations. The following combination_code is as follows:

template<class RandIt, class Compare> 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); } 

I tried calling it like this:

 bool mycomp (int c1, int c2) { return (c1)<(c2); } void test_combos(int to_generate){ std::vector<int> combo(30); for(int i=0;i<30;++i){ combo.push_back(i); } while(next_combination<std::vector<int>::iterator, bool>(combo.begin(),combo.begin()+to_generate,combo.end(),mycomp)){ for(std::vector<int>::iterator iter = combo.begin(); iter != combo.end() ; ++iter){ std::cout << *iter << " "; } } } 

but I get a huge error message. Is something really obvious going wrong here?

In what headers can I find std :: placeholder?

As requested, here is the error message:

  $ 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.hhaps655: error: '__comp' cannot be used as a function
 /usr/include/c++/4.4/bits/stl_algo.hhaps658: 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 _Compare = std :: _ Bind, std :: _ Placeholder)>] '
 /usr/include/c++/4.4/bits/stl_algo.hhaps2525: 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 _Compare = std :: _ Bind, std :: _ Placeholder)>] '
 /usr/include/c++/4.4/bits/stl_algo.hhaps2525: 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 _Compare = std :: _ Bind, std :: _ Placeholder)>] '
 /usr/include/c++/4.4/bits/stl_algo.hhaps2525: 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 _Compare = std :: _ Bind, std :: _ Placeholder)>] '
 /usr/include/c++/4.4/bits/stl_algo.hhaps2525: 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 _Compare = std :: _ Bind, std :: _ Placeholder)>] '
 /usr/include/c++/4.4/bits/stl_algo.hhaps2525: 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 = 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 _Compare = std :: _ Bind, std :: _ Placeholder)>] '
 /usr/include/c++/4.4/bits/stl_algo.hhaps2525: 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 = 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 _Compare = std :: _ Bind, std :: _ Placeholder)>] '
 /usr/include/c++/4.4/bits/stl_algo.hhaps2525: 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 = 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 _Compare = std :: _ Bind, std :: _ Placeholder)>] '
 /usr/include/c++/4.4/bits/stl_algo.hhaps2525: 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 = 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 _Compare = std :: _ Bind, std :: _ Placeholder)>] '
 /usr/include/c++/4.4/bits/stl_algo.hhaps2525: 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 :: __ :: _ 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 _Compare = std :: _ Bind, std :: _ Placeholder)>] '
 /usr/include/c++/4.4/bits/stl_algo.hhaps2525: 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>>, _dind : _Placeholder)>] ':
 /usr/ include 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 std :: _ Placeholder)>] ':
 /usr/include/c++/4.4/bits/stl_algo.hโ–บ108: 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> _ long ร— _Compare = std :: _ Bind, std :: _ Placeholder)>] '
 /usr/include/c++/4.4/bits/stl_algo.hhaps2525: 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>>, _Comp = int _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> = std :: _ Placeholder)>] '
 /usr/ include 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 _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 _Bind, std :: _ Placeholder)>] '
 /usr/include/c++/4.4/bits/stl_algo.hโ–บ108: instantiated from 'void std :: partial_sort (_RAIter, _RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx :: __ normal_iterator>>, _Compare = std :: _Bind, std :: _ Placeholder)>] '
 /usr/ include _Compare = std :: _ Bind, std :: _ Placeholder)>] '
 /usr/include/c++/4.4/bits/stl_algo.hhaps2525: 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 _Tp = int, _Compare = std :: _ Bind, std :: _ Placeholder)>] ':
 /usr/include/c++/4.4/bits/stl_heap.hhaps16: instantiated from 'void std :: __ adjust_heap (_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx :: __ normal_iterator>, 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 _Bind, std :: _ Placeholder)>] '
 /usr/include/c++/4.4/bits/stl_algo.hโ–บ108: 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> _ long ร— _Compare = std :: _ Bind, std :: _ Placeholder)>] '
 /usr/include/c++/4.4/bits/stl_algo.hhaps2525: 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
+4
source share
1 answer

The second argument to the template should not be bool . You can allow the compiler to process types and just write:

 while(next_combination(combo.begin(), combo.begin() + to_generate, combo.end(), std::less<int>())) for(std::vector<int>::iterator iter = combo.begin(); iter != combo.end() ; ++iter) std::cout << *iter << " "; 

And use spaces - it makes the code better.

+2
source

Source: https://habr.com/ru/post/1332073/


All Articles