SortBooks(const std::vector<Book> &loadedBooks)
{
std::sort(loadedBooks.begin(), loadedBooks.end(), [](const Book &a, const Book &b) -> bool
{ return a.GetAuthor() > b.GetAuthor(); });
}
Но при этом возникает ошибка
error: passing ‘const Book’ as ‘this’ argument discards qualifiers [-fpermissive]
Где я мог накосячить с const? Спасибо.
Вы берёте константный, неизменяемый вектор и пытаетесь его поменять — отсортировать. Я бы тоже пожаловался на месте компилятора
Кроме того, из ошибки мне кажется, что метод GetAuthor() не помечен как const, а значит, компилятор считает, что он будет менять данные класса, что тоже плохо
Все верно, не заметил, спасибо!
Обсуждают сегодня