Форум программистов, компьютерный форум CyberForum.ru

Ошибка: no matching function for call to - C++

Восстановить пароль Регистрация
 
andrejap
13 / 13 / 1
Регистрация: 21.04.2013
Сообщений: 245
10.06.2014, 16:30     Ошибка: no matching function for call to #1
Здравствуйте. Вот такая ошибка:
/usr/include/c++/4.8/bits/stl_algo.h:2235:62: required from ‘void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Enrollee*, std::vector<Enrollee> >]’
/usr/include/c++/4.8/bits/stl_algo.h:5476:47: required from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<Enrollee*, std::vector<Enrollee> >]’
Results.cpp:43:36: required from here
/usr/include/c++/4.8/bits/stl_algo.h:2164:11: error: no matching function for call to ‘Enrollee::Enrollee(std::remove_reference<Enrollee&>::type)’

Собственно, пытаюсь сравнить:

C++
1
sort(sMT.begin(), sMT.end());
Контейнеры это - std::vector<Enrollee>.
Есть оператор сравнения:
C++
1
2
3
4
bool operator <(const Enrollee& l, const Enrollee& r)
{
    return (l.avg < r.avg) ? true : false;
}
Что может быть не так???
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2014, 16:30     Ошибка: no matching function for call to
Посмотрите здесь:

C++ no matching function for call to `Serio'::ras4et()'
Наследование классов, ошибка no matching function for call to C++
exceptions (no matching function for call to .) C++
C++ Как исправить ошибку: no matching function for call
C++ Ошибка: no matching function for call to 'Slovare<std::basic_string<char> >::show()'
Ошибка компиляции: no matching function for call C++
Ошибка "no matching function for call to." / наследование классов C++
C++ Ошибка компиляции: no matching function for call to
Ошибка в конструкторе: "no matching function for call to" C++
No matching function to call to C++
"no matching function for call to" ошибка в вызове конструктора C++
Ошибка no matching function for call to при работе с файлом C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Renji
1604 / 1052 / 257
Регистрация: 05.06.2014
Сообщений: 3,136
10.06.2014, 17:06     Ошибка: no matching function for call to #2
Видимо, хочет Enrollee::Enrollee(const Enrollee&src);
andrejap
13 / 13 / 1
Регистрация: 21.04.2013
Сообщений: 245
10.06.2014, 17:29  [ТС]     Ошибка: no matching function for call to #3
Хм, а у меня он был объявлен как explicit. Отменил explicit - получилось. Спасибо!
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
10.06.2014, 17:39     Ошибка: no matching function for call to #4
Цитата Сообщение от andrejap Посмотреть сообщение
у меня он был объявлен как explicit
Зачем? Это ведь даже копирования нормально не сделать.
Вместо
C++
1
2
С с1; 
C c2 = c1;
придется писать нечто такое:
C++
1
2
С с1; 
C c2( С(c1) );
andrejap
13 / 13 / 1
Регистрация: 21.04.2013
Сообщений: 245
10.06.2014, 17:45  [ТС]     Ошибка: no matching function for call to #5
Tulosba, видимо, я себе не очень правильно представлял его действие.
Для
C++
1
explicit C::C (const int& X)
можно же выполнить такое:
C++
1
2
3
int val1 = 5;
long val2 = 10;
C obj1(val1);
А в случае с:
C++
1
C obj2(val2);
то уже нельзя? Только с явным приведением можно?
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
10.06.2014, 17:50     Ошибка: no matching function for call to #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
andrejap, explicit (явный) указывает на то, что данный конструктор с одним параметром требуется указывать явно при вызове. Обычно это бывает полезно для исключения случайного преобразования из типа параметра в тип объекта. explicit так же может быть указан для операторов преобразования из типа объекта в другой тип (начиная с C++11). Пример:
C++
1
explicit operator bool (const C&) // явное преобразование типа C в bool.
Yandex
Объявления
10.06.2014, 17:50     Ошибка: no matching function for call to
Ответ Создать тему
Опции темы

Текущее время: 01:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru