Created attachment 22402 [details] test.cc Summary: std::sort_heap use (possible deleted) operator, and failed to compile if it's deleted. Steps to Reproduce: clang++ -o /dev/null -std=c++11 --compile test.cc (test.cc attched) Actual Results: In file included from test.cc:1: /home/yiyan/.local/bin/../include/c++/v1/algorithm:4998:67: error: overload resolution selected deleted operator ',' for (difference_type __n = __last - __first; __n > 1; --__last, --__n) ~~~~~~~~^ ~~~~~ /home/yiyan/.local/bin/../include/c++/v1/algorithm:5008:5: note: in instantiation of function template specialization 'std::__1::__sort_heap<std::__1::__less<int, int> &, random_access_iterator_wrapper<int> >' requested here __sort_heap<_Comp_ref>(__first, __last, __comp); ^ /home/yiyan/.local/bin/../include/c++/v1/algorithm:5016:12: note: in instantiation of function template specialization 'std::__1::sort_heap<random_access_iterator_wrapper<int>, std::__1::__less<int, int> >' requested here _VSTD::sort_heap(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); ^ test.cc:33:10: note: in instantiation of function template specialization 'std::__1::sort_heap<random_access_iterator_wrapper<int> >' requested here std::sort_heap(sortcon.begin(), sortcon.end()); ^ test.cc:23:10: note: candidate function [with U = long] has been explicitly deleted void operator,(U) = delete; ^ 1 error generated. Expected Results: No error Build Date & Hardware: Build 2019-08-20 on Linux x86_64
What version of clang/libc++ are you working off of? Your test program compiles fine for me using trunk.
I think you attached the wrong file.
Never mind; I have reproduced it.
Created attachment 22404 [details] test.cc
You are right, and I've updated the attachment, in case if it's needed.
Fixed in revision 369448