Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
69 / 69 / 56
Регистрация: 04.06.2016
Сообщений: 235
1

Ошибка в шаблоне функции: "Отсутствуют экземпляры шаблон функции, соответствующие списку аргументов"

13.07.2017, 01:32. Просмотров 1609. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <iterator>
#include <map>
#include <Windows.h>
#include <functional>
#include <string>
#include <sstream>
 
using namespace std;
 
template<typename T>
void ReadData(string msg,T &data,const function<bool(T)> f)
{
    do
    {
        cin.clear();
        cin.ignore(cin.rdbuf()->in_avail());// Чистим поток от мусора
        cout << msg;
        cin >> data;
    } while (!cin || !f(data) );// повторяем цикл пока не получим корректные данные
 
    cin.clear();
    cin.ignore(cin.rdbuf()->in_avail());// Чистим поток от мусора
}
 
bool f(int x)
{
    return true;
}
int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    multimap <int, string> m;
    int n;
        
    ReadData(" Размер массива = ", n, f);
 
    return 0;
 
}
Выводит "Отсутствуют экземпляры шаблон функции "ReadData", соответствующие списку аргументов ",хотя если изменить
C++
1
void ReadData(string msg,T &data,const function<bool(T)> f)
на
C++
1
void ReadData(string msg,T &data,const function<bool(int)> f)
все прекрасно работает.Однако,мне нужно чтобы функция могла принимать не только функции с параметром целого типа.Как можно это реализовать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.07.2017, 01:32
Ответы с готовыми решениями:

Отсутствуют экземпляры шаблон функции "print", соответствующие списку аргументов
Подскажите, почему ругается на вызов функции print? #include &lt;iostream&gt; using namespace std;...

Отсутствуют экземпляры перегруженной функции "modf", соответствующие списку аргументов
в чем причина #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; int bin(double dex)...

Ошибка: E0304 отсутствуют экземпляры перегруженной функции, соответствующие списку аргументов stiff_system...
std::vector&lt;std::function&lt;double(double, double, double, double, double, double) &gt;&gt; vfunc;...

Потоки. Ошибка отсутствуют экземпляры конструктора, соответствующие списку аргументов
void Engine::run() { long startTime; long timeMillis; long waitTime; long totalTime =...

3
Заблокирован
13.07.2017, 01:59 2
Encephalopathy, у тебя в шаблоне const function<bool(T)>, а передаёшь ты туда f, у которой тип bool(int).

Цитата Сообщение от Encephalopathy Посмотреть сообщение
Однако,мне нужно чтобы функция могла принимать не только функции с параметром целого типа.Как можно это реализовать?
Зачем тебе обязательно std::function? Принимай просто любой функтор, добавив ещё один параметр шаблона.
1
69 / 69 / 56
Регистрация: 04.06.2016
Сообщений: 235
13.07.2017, 02:08  [ТС] 3
daun-autist,
C++
1
2
3
template<typename T,typename F>
void ReadData(string msg,T &data,F f)
{
Так?Вроде все работает в таком случае.
0
Заблокирован
13.07.2017, 02:09 4
Encephalopathy, вроде того.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.07.2017, 02:09

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Потоки с стандарте C++ 11. Отсутствуют экземпляры конструктора, соответствующие списку аргументов
Tvector.push_back(thread(threadFunction,mas,i,3,4,76,55)); сама функция void threadFunction(int...

Специализации. Отсутствуют экземпляры шаблон функции, соответствующие заданному типу
Изучаю С++ по книге Стивена Прата, там есть задача: &quot;Создайте шаблон функции maxn () , которая...

Ошибка: отсутствуют экземпляры шаблон функции
Всем доброго времени суток. Решил отработать на практике алгоритм быстрой сортировки и столкнулся...

Ошибка при компиляции:"C2955 "Tree": для использования класс шаблон требуется список аргументов шаблон"
Есть класс бинарного дерева, в нем структура. Класс - Tree, структура - list(листик, а не список)....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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