fork download
  1. #include <list>
  2. #include <algorithm>
  3.  
  4.  
  5. int main() {
  6. std::list<int> list{3, 2, 1};
  7. std::sort(list.begin(), list.end());
  8. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
In file included from /usr/include/c++/8/algorithm:62,
                 from prog.cpp:2:
/usr/include/c++/8/bits/stl_algo.h: In instantiation of ‘void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = std::_List_iterator<int>; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’:
/usr/include/c++/8/bits/stl_algo.h:4834:18:   required from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = std::_List_iterator<int>]’
prog.cpp:7:37:   required from here
/usr/include/c++/8/bits/stl_algo.h:1969:22: error: no match for ‘operator-’ (operand types are ‘std::_List_iterator<int>’ and ‘std::_List_iterator<int>’)
     std::__lg(__last - __first) * 2,
               ~~~~~~~^~~~~~~~~
In file included from /usr/include/c++/8/bits/stl_algobase.h:67,
                 from /usr/include/c++/8/list:60,
                 from prog.cpp:1:
/usr/include/c++/8/bits/stl_iterator.h:392:5: note: candidate: ‘template<class _IteratorL, class _IteratorR> decltype ((__y.base() - __x.base())) std::operator-(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)’
     operator-(const reverse_iterator<_IteratorL>& __x,
     ^~~~~~~~
/usr/include/c++/8/bits/stl_iterator.h:392:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/algorithm:62,
                 from prog.cpp:2:
/usr/include/c++/8/bits/stl_algo.h:1969:22: note:   ‘std::_List_iterator<int>’ is not derived from ‘const std::reverse_iterator<_Iterator>’
     std::__lg(__last - __first) * 2,
               ~~~~~~~^~~~~~~~~
In file included from /usr/include/c++/8/bits/stl_algobase.h:67,
                 from /usr/include/c++/8/list:60,
                 from prog.cpp:1:
/usr/include/c++/8/bits/stl_iterator.h:1188:5: note: candidate: ‘template<class _IteratorL, class _IteratorR> decltype ((__x.base() - __y.base())) std::operator-(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)’
     operator-(const move_iterator<_IteratorL>& __x,
     ^~~~~~~~
/usr/include/c++/8/bits/stl_iterator.h:1188:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/algorithm:62,
                 from prog.cpp:2:
/usr/include/c++/8/bits/stl_algo.h:1969:22: note:   ‘std::_List_iterator<int>’ is not derived from ‘const std::move_iterator<_IteratorL>’
     std::__lg(__last - __first) * 2,
               ~~~~~~~^~~~~~~~~
stdout
Standard output is empty