Вот пример, который дает обе ошибки: < /p>
#include
#include [*]
#include
template void foo(C& container){
// this one works for std::vector
std::sort(container.begin(), container.end(), [](auto&a, auto&b){return a
Ошибки: < /p>
- std::vector не имеет функции сортировки:
main.cpp:18:8: required from here
18 | foo(b);
| ~~~^~~
main.cpp:10:15: error: ‘class std::vector’ has no member named ‘sort’
10 | container.sort();
| ~~~~~~~~~~^~~~
< /code>
- list::iterator нет - оператор для расчета расстояния.
from main.cpp:3:
/usr/include/c++/14/bits/stl_algo.h: In instantiation of ‘constexpr void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = _List_iterator; _Compare = __gnu_cxx::__ops::_Iter_comp_iter]’:
/usr/include/c++/14/bits/stl_algo.h:4804:18: required from ‘constexpr void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = _List_iterator; _Compare = foo(std::__cxx11::list&)::]’
4804 | std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp));
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.cpp:7:14: required from ‘void foo(C&) [with C = std::__cxx11::list]’
7 | std::sort(container.begin(), container.end(), [](auto&a, auto&b){return a
Подробнее здесь: https://stackoverflow.com/questions/796 ... -container
Мобильная версия