The following code fails to compile using the parallel mode: #include <algorithm> #include <functional> #include <tr1/functional>
int main() { using namespace std; using namespace tr1; using namespace placeholders; int t[10]; sort(t, t+10, bind(less<int>(), _1, _2)); } -------------------------- The error message is: In file included from /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_mergesort.h:46, from /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/sort.h:50, from /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/algo.h:51, from /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/algorithm:43, from /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/algorithm:70, from parallel_sort_bug.cpp:1: /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h: In function 'bool __gnu_parallel::operator<=(__gnu_parallel::unguarded_iterator<RandomAccessIterator, Comparator>&, __gnu_parallel::unguarded_iterator<RandomAccessIterator, Comparator>&) [with RandomAccessIterator = int*, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]': /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:431: instantiated from 'RandomAccessIterator3 __gnu_parallel::multiway_merge_3_variant(RandomAccessIteratorIterator, RandomAccessIteratorIterator, RandomAccessIterator3, Comparator, _DifferenceTp, bool) [with iterator = __gnu_parallel::unguarded_iterator, RandomAccessIteratorIterator = __gnu_cxx::__normal_iterator<std::pair<int*, int*>*, std::__cxx1998::vector<std::pair<int*, int*>, std::allocator<std::pair<int*, int*> > > >, RandomAccessIterator3 = int*, _DifferenceTp = int, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:1395: instantiated from 'RandomAccessIterator3 __gnu_parallel::multiway_merge(RandomAccessIteratorIterator, RandomAccessIteratorIterator, RandomAccessIterator3, Comparator, _DifferenceTp, bool, bool, __gnu_parallel::sequential_tag) [with RandomAccessIteratorIterator = __gnu_cxx::__normal_iterator<std::pair<int*, int*>*, std::__cxx1998::vector<std::pair<int*, int*>, std::allocator<std::pair<int*, int*> > > >, RandomAccessIterator3 = int*, _DifferenceTp = int, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_mergesort.h:311: instantiated from 'void __gnu_parallel::parallel_sort_mwms_pu(__gnu_parallel::PMWMSSortingData<RandomAccessIterator>*, Comparator&) [with RandomAccessIterator = int*, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_mergesort.h:407: instantiated from 'void __gnu_parallel::parallel_sort_mwms(RandomAccessIterator, RandomAccessIterator, Comparator, typename std::iterator_traits<_Iterator>::difference_type, int, bool) [with RandomAccessIterator = int*, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/sort.h:88: instantiated from 'void __gnu_parallel::parallel_sort(RandomAccessIterator, RandomAccessIterator, Comparator, bool) [with RandomAccessIterator = int*, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/algo.h:1751: instantiated from 'void std::__parallel::sort(_RAIter, _RAIter, _Compare) [with _RAIter = int*, _Compare = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' parallel_sort_bug.cpp:12: instantiated from here /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:256: error: no match for call to '(std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>) (int, int)' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1189: note: candidates are: typename std::tr1::result_of<_Functor ()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args, std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)> ()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) [with _Args = int, int, _Functor = std::less<int>, _Bound_args = std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>] /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1200: note: typename std::tr1::result_of<const _Functor ()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args, std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)> ()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) const [with _Args = int, int, _Functor = std::less<int>, _Bound_args = std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>] /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1212: note: typename std::tr1::result_of<volatile _Functor ()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args, std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)> ()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) volatile [with _Args = int, int, _Functor = std::less<int>, _Bound_args = std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>] /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1225: note: typename std::tr1::result_of<const volatile _Functor ()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args, std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)> ()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) const volatile [with _Args = int, int, _Functor = std::less<int>, _Bound_args = std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>] /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h: In function 'bool __gnu_parallel::operator<(__gnu_parallel::unguarded_iterator<RandomAccessIterator, Comparator>&, __gnu_parallel::unguarded_iterator<RandomAccessIterator, Comparator>&) [with RandomAccessIterator = int*, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]': /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:436: instantiated from 'RandomAccessIterator3 __gnu_parallel::multiway_merge_3_variant(RandomAccessIteratorIterator, RandomAccessIteratorIterator, RandomAccessIterator3, Comparator, _DifferenceTp, bool) [with iterator = __gnu_parallel::unguarded_iterator, RandomAccessIteratorIterator = __gnu_cxx::__normal_iterator<std::pair<int*, int*>*, std::__cxx1998::vector<std::pair<int*, int*>, std::allocator<std::pair<int*, int*> > > >, RandomAccessIterator3 = int*, _DifferenceTp = int, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:1395: instantiated from 'RandomAccessIterator3 __gnu_parallel::multiway_merge(RandomAccessIteratorIterator, RandomAccessIteratorIterator, RandomAccessIterator3, Comparator, _DifferenceTp, bool, bool, __gnu_parallel::sequential_tag) [with RandomAccessIteratorIterator = __gnu_cxx::__normal_iterator<std::pair<int*, int*>*, std::__cxx1998::vector<std::pair<int*, int*>, std::allocator<std::pair<int*, int*> > > >, RandomAccessIterator3 = int*, _DifferenceTp = int, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_mergesort.h:311: instantiated from 'void __gnu_parallel::parallel_sort_mwms_pu(__gnu_parallel::PMWMSSortingData<RandomAccessIterator>*, Comparator&) [with RandomAccessIterator = int*, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_mergesort.h:407: instantiated from 'void __gnu_parallel::parallel_sort_mwms(RandomAccessIterator, RandomAccessIterator, Comparator, typename std::iterator_traits<_Iterator>::difference_type, int, bool) [with RandomAccessIterator = int*, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/sort.h:88: instantiated from 'void __gnu_parallel::parallel_sort(RandomAccessIterator, RandomAccessIterator, Comparator, bool) [with RandomAccessIterator = int*, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/algo.h:1751: instantiated from 'void std::__parallel::sort(_RAIter, _RAIter, _Compare) [with _RAIter = int*, _Compare = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' parallel_sort_bug.cpp:12: instantiated from here /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:243: error: no match for call to '(std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>) (int, int)' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1189: note: candidates are: typename std::tr1::result_of<_Functor ()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args, std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)> ()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) [with _Args = int, int, _Functor = std::less<int>, _Bound_args = std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>] /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1200: note: typename std::tr1::result_of<const _Functor ()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args, std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)> ()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) const [with _Args = int, int, _Functor = std::less<int>, _Bound_args = std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>] /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1212: note: typename std::tr1::result_of<volatile _Functor ()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args, std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)> ()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) volatile [with _Args = int, int, _Functor = std::less<int>, _Bound_args = std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>] /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1225: note: typename std::tr1::result_of<const volatile _Functor ()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args, std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)> ()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) const volatile [with _Args = int, int, _Functor = std::less<int>, _Bound_args = std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>] /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h: In function 'bool __gnu_parallel::operator<=(__gnu_parallel::guarded_iterator<RandomAccessIterator, Comparator>&, __gnu_parallel::guarded_iterator<RandomAccessIterator, Comparator>&) [with RandomAccessIterator = int*, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]': /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:431: instantiated from 'RandomAccessIterator3 __gnu_parallel::multiway_merge_3_variant(RandomAccessIteratorIterator, RandomAccessIteratorIterator, RandomAccessIterator3, Comparator, _DifferenceTp, bool) [with iterator = __gnu_parallel::guarded_iterator, RandomAccessIteratorIterator = __gnu_cxx::__normal_iterator<std::pair<int*, int*>*, std::__cxx1998::vector<std::pair<int*, int*>, std::allocator<std::pair<int*, int*> > > >, RandomAccessIterator3 = int*, _DifferenceTp = int, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:1403: instantiated from 'RandomAccessIterator3 __gnu_parallel::multiway_merge(RandomAccessIteratorIterator, RandomAccessIteratorIterator, RandomAccessIterator3, Comparator, _DifferenceTp, bool, bool, __gnu_parallel::sequential_tag) [with RandomAccessIteratorIterator = __gnu_cxx::__normal_iterator<std::pair<int*, int*>*, std::__cxx1998::vector<std::pair<int*, int*>, std::allocator<std::pair<int*, int*> > > >, RandomAccessIterator3 = int*, _DifferenceTp = int, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_mergesort.h:311: instantiated from 'void __gnu_parallel::parallel_sort_mwms_pu(__gnu_parallel::PMWMSSortingData<RandomAccessIterator>*, Comparator&) [with RandomAccessIterator = int*, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_mergesort.h:407: instantiated from 'void __gnu_parallel::parallel_sort_mwms(RandomAccessIterator, RandomAccessIterator, Comparator, typename std::iterator_traits<_Iterator>::difference_type, int, bool) [with RandomAccessIterator = int*, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/sort.h:88: instantiated from 'void __gnu_parallel::parallel_sort(RandomAccessIterator, RandomAccessIterator, Comparator, bool) [with RandomAccessIterator = int*, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/algo.h:1751: instantiated from 'void std::__parallel::sort(_RAIter, _RAIter, _Compare) [with _RAIter = int*, _Compare = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' parallel_sort_bug.cpp:12: instantiated from here /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:167: error: no match for call to '(std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>) (int, int)' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1189: note: candidates are: typename std::tr1::result_of<_Functor ()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args, std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)> ()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) [with _Args = int, int, _Functor = std::less<int>, _Bound_args = std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>] /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1200: note: typename std::tr1::result_of<const _Functor ()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args, std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)> ()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) const [with _Args = int, int, _Functor = std::less<int>, _Bound_args = std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>] /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1212: note: typename std::tr1::result_of<volatile _Functor ()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args, std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)> ()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) volatile [with _Args = int, int, _Functor = std::less<int>, _Bound_args = std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>] /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1225: note: typename std::tr1::result_of<const volatile _Functor ()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args, std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)> ()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) const volatile [with _Args = int, int, _Functor = std::less<int>, _Bound_args = std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>] /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h: In function 'bool __gnu_parallel::operator<(__gnu_parallel::guarded_iterator<RandomAccessIterator, Comparator>&, __gnu_parallel::guarded_iterator<RandomAccessIterator, Comparator>&) [with RandomAccessIterator = int*, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]': /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:436: instantiated from 'RandomAccessIterator3 __gnu_parallel::multiway_merge_3_variant(RandomAccessIteratorIterator, RandomAccessIteratorIterator, RandomAccessIterator3, Comparator, _DifferenceTp, bool) [with iterator = __gnu_parallel::guarded_iterator, RandomAccessIteratorIterator = __gnu_cxx::__normal_iterator<std::pair<int*, int*>*, std::__cxx1998::vector<std::pair<int*, int*>, std::allocator<std::pair<int*, int*> > > >, RandomAccessIterator3 = int*, _DifferenceTp = int, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:1403: instantiated from 'RandomAccessIterator3 __gnu_parallel::multiway_merge(RandomAccessIteratorIterator, RandomAccessIteratorIterator, RandomAccessIterator3, Comparator, _DifferenceTp, bool, bool, __gnu_parallel::sequential_tag) [with RandomAccessIteratorIterator = __gnu_cxx::__normal_iterator<std::pair<int*, int*>*, std::__cxx1998::vector<std::pair<int*, int*>, std::allocator<std::pair<int*, int*> > > >, RandomAccessIterator3 = int*, _DifferenceTp = int, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_mergesort.h:311: instantiated from 'void __gnu_parallel::parallel_sort_mwms_pu(__gnu_parallel::PMWMSSortingData<RandomAccessIterator>*, Comparator&) [with RandomAccessIterator = int*, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_mergesort.h:407: instantiated from 'void __gnu_parallel::parallel_sort_mwms(RandomAccessIterator, RandomAccessIterator, Comparator, typename std::iterator_traits<_Iterator>::difference_type, int, bool) [with RandomAccessIterator = int*, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/sort.h:88: instantiated from 'void __gnu_parallel::parallel_sort(RandomAccessIterator, RandomAccessIterator, Comparator, bool) [with RandomAccessIterator = int*, Comparator = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/algo.h:1751: instantiated from 'void std::__parallel::sort(_RAIter, _RAIter, _Compare) [with _RAIter = int*, _Compare = std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>]' parallel_sort_bug.cpp:12: instantiated from here /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/parallel/multiway_merge.h:151: error: no match for call to '(std::tr1::_Bind<std::less<int> ()(std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>)>) (int, int)' /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1189: note: candidates are: typename std::tr1::result_of<_Functor ()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args, std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)> ()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) [with _Args = int, int, _Functor = std::less<int>, _Bound_args = std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>] /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1200: note: typename std::tr1::result_of<const _Functor ()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args, std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)> ()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) const [with _Args = int, int, _Functor = std::less<int>, _Bound_args = std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>] /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1212: note: typename std::tr1::result_of<volatile _Functor ()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args, std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)> ()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) volatile [with _Args = int, int, _Functor = std::less<int>, _Bound_args = std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>] /Users/spion/GCC/Darwin/lib/gcc/i386-apple-darwin8.11.1/4.4.0/../../../../include/c++/4.4.0/tr1_impl/functional:1225: note: typename std::tr1::result_of<const volatile _Functor ()(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args, std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)> ()(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type std::tr1::_Bind<_Functor ()(_Bound_args ...)>::operator()(_Args& ...) const volatile [with _Args = int, int, _Functor = std::less<int>, _Bound_args = std::tr1::_Placeholder<1>, std::tr1::_Placeholder<2>] -- Summary: parallel std::sort and bind() Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: sylvain dot pion at sophia dot inria dot fr GCC host triplet: i686-apple-darwin8 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35588