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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
andrejap
13 / 13 / 1
Регистрация: 21.04.2013
Сообщений: 245
#1

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

10.06.2014, 16:30. Просмотров 945. Ответов 5
Метки нет (Все метки)

Здравствуйте. Вот такая ошибка:
/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
Посмотрите здесь:

Ошибка компиляции: no matching function for call to - C++
Здравствуйте форумчане. Возникает ошибка компиляции no matching function for call to в коде: editor-&gt;make_field&lt;Game, WString,...

Ошибка компиляции: no matching function for call - C++
В классе объявлено 4 конструктора: MyClass() = default; explicit MyClass(const MyClass&amp;) = default; explicit...

Наследование классов, ошибка no matching function for call to - C++
Здравствуйте. Имеется программа с классом tre. Пытаюсь сделать наследование Новым классом Trel, но получаю ошибку no matching function for...

Ошибка no matching function for call to при работе с файлом - C++
возникает ошибка no matching function for call to 'getline(std::string&amp;, std::string&amp;)' #include &lt;iostream&gt; #include &lt;string&gt; ...

Ошибка: no matching function for call to 'Slovare<std::basic_string<char> >::show()' - C++
Помогите исправить ошибку. Программа должна при нажатии 3 выводить итог, но при построении выходит ошибка как раз в этой строчке:...

Ошибка "no matching function for call to." / наследование классов - C++
Доброго времени суток. В качестве некоторой предыстории скажу, что начать изучать С++ довелось совсем недавно, и в процессе возникла...

"no matching function for call to" ошибка в вызове конструктора - C++
имеется следующий класс makeworldtemplate.h #ifndef MAKEWORLDTEMPLATE_H #define MAKEWORLDTEMPLATE_H #include &lt;list&gt; ...

No matching function to call to - C++
не могу никак понять, в чём дело: class field_box{ public: field_box(vec2 ipos,vec2 isize, int a){ ...

Ошибка в конструкторе: "no matching function for call to" - C++
In constructor 'Graph::Graph(int, std::vector&lt;edge&gt;)': 98:49: error: no matching function for call to 'DSofNude::DSofNude()' 98:49:...

exceptions (no matching function for call to .) - C++
Помогите, пожалуйста, разобраться с исключениями: double ctok(double c) { return c + 273.15; } int main() { try { ...

no matching function for call to `Serio'::ras4et()' - C++
Как понять такую Ошибку?

Как исправить ошибку: no matching function for call - C++
TArray &lt;std::wstring&gt; Result; std::ifstream File; File.open(Path.c_str()); return Result;


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Renji
1853 / 1271 / 290
Регистрация: 05.06.2014
Сообщений: 3,627
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
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
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
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
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
Ответ Создать тему
Опции темы

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