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

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

Войти
Регистрация
Восстановить пароль
 
septe-mber
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 123
#1

Шаблоны no match for call to - C++

04.02.2014, 22:58. Просмотров 429. Ответов 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
template<typename Vertex>
    void operator ()(Vertex vertex, vector<pair<int, Vertex>>& map)
    {
        stack<pair<int, int>> s;
        vector<pair<int, int>> vec = randVertex(map[0].second, map);
        s.push(map[0]);
        while(true)
        {
            if(!vec.empty())
            {
                int indexRand = rand() % vec.size();
                if(vec[indexRand].second == vertex)
                {
                    break;
                }
                else
                {
                    s.push(vec[indexRand]);
                    vec = randVertex(vec[indexRand].second, map);
                }
            }
            else
            {
                map[getIndexMap(s.top().second, map)].first = -1;
                s.pop();
                vec = randVertex(s.top().second, map);
            }
        }
    }
вызываю функцию
C++
1
2
vector<pair<int, int>> tmp = printVertex(B);
    p(H, tmp);
пишет ошибку
Код
/home/september/Проекты/TEST/main.cpp:162: ошибка: no match for call to '(FindPath) (<anonymous enum>, std::vector<std::pair<int, int> >&)'
     p(H, tmp);
             ^
пользуюсь qt creator g++

как правильно вызвать эту функцию с шаблоном ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2014, 22:58     Шаблоны no match for call to
Посмотрите здесь:

C++ Шаблоны классов. Ошибка `unable to match function definition to an existing declaration`
C++ unable to match function definition to an existing declaration
C++ Code::blocks error: no match for 'operator[]' in 'SP[i]'
No match for 'operator=' . Что не так? C++
C++ Ошибка при запуске проекта: error: no match for ‘operator>>’
C++ Ошибка: no match for 'operator<<'
C++ Error: no match for 'operator!='
C++ Ошибка при использовании перегруженного оператора вывода в поток: no match for 'operator<<'
В чем причина ошибки no match for? C++
Компилятор выдает ошибку "Could not find a match for 'stringstream" C++
C++ No match for 'operator<<'
C++ Ошибка: no match for 'operator>>'

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1252 / 1135 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 3
04.02.2014, 23:30     Шаблоны no match for call to #2
septe-mber, а если так?
C++
1
p(static_cast<int>(H), tmp);
septe-mber
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 123
04.02.2014, 23:35  [ТС]     Шаблоны no match for call to #3
gray_fox, как ни странно, работает... хотя на первый вгляд кажется, что явно преобразуем переменную H к типу int...
gray_fox
What a waste!
 Аватар для gray_fox
1252 / 1135 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 3
04.02.2014, 23:39     Шаблоны no match for call to #4
Цитата Сообщение от septe-mber Посмотреть сообщение
что явно преобразуем переменную H к типу int...
Так при "поиске" шаблона это не будет учитываться...
Т.е. то, что перечисление неявно приводиться к целому...
Yandex
Объявления
04.02.2014, 23:39     Шаблоны no match for call to
Ответ Создать тему
Опции темы

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