Alvin Seville
342 / 272 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
1

Ошибка no instance of function template "Swap" matches the argument list

10.12.2018, 21:54. Показов 3854. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include "stdafx.h"
 
using namespace System;
using namespace System::Collections::Generic;
 
generic <typename T>
void Swap(T %x, T %y)
{
    T z = x;
    x = y;
    y = z;
}
 
generic <typename T>
void BubbleSort(IList<T> ^source, IComparer<T> ^comparer)
{
    bool isSwapped;
    for (int i = source->Count - 1; i > 0; i--)
    {
        isSwapped = false;
        for (int j = 0; j < i; j++)
            if (comparer->Compare(source[j], source[j + 1]) > 0)
            {
                Swap(source[j], source[j + 1]);
                isSwapped = true;
            }
        if (!isSwapped)
            break;
    }
}
 
int Main(array<String ^> ^args)
{
    array<int> ^a = { 3, 2, 1, 0 };
    BubbleSort(a, Comparer<int>::Default);
    for each (auto item in a)
        Console::Write("{0} ", item);
    return 0;
}
Ошибка
no instance of function template "Swap" matches the argument list
Как исправить?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2018, 21:54
Ответы с готовыми решениями:

Ошибка компиляции "no instance of constructor 'std::thread::thread' matches the argument list"
Не могу сообразить почему возникает ошибка. У меня в классе есть метод, который должен работать в...

Ошибка компиляции "no instance of constructor "MemReader::MemReader" matches the argument list"
Добрый день. При написании класса поиска определённого процесса столкнулся с ошибкой: &quot;E0289 no...

Ошибка "E0309 more than one instance of constructor "Myclass::Myclass" matches the argument list"
Видает такую ошибку Severity Code Description Project File Line Suppression StateError...

Error E0289 no instance of constructor "MyString::MyString" matches the argument list
Здравствуйте, второй день как начала ООП, смотрю стрим, банально копирую код и на тебе, ошибка, то...

5
Alvin Seville
342 / 272 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
11.12.2018, 15:00  [ТС] 2
Вопрос актуален.
0
Эксперт .NET
17438 / 12830 / 3361
Регистрация: 17.09.2011
Сообщений: 21,108
11.12.2018, 15:50 3
Цитата Сообщение от Соколиный глаз Посмотреть сообщение
Как исправить?
Либо измените тип параметра source на array<T>, либо измените метод Swap, чтобы он принимал не адреса переменных, а, например, список и индексы.
Индексатор IList<T> возвращает не lvalue, так что передать по ссылке его результат не получится.
1
Alvin Seville
342 / 272 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
11.12.2018, 17:28  [ТС] 4
А почему нельзя так:
C++
1
(source[j], source[j + 1]) = (source[j + 1], source[j]);
? В C# же можно. Что мешает это сделать тут?
0
Эксперт .NET
17438 / 12830 / 3361
Регистрация: 17.09.2011
Сообщений: 21,108
11.12.2018, 18:56 5
Лучший ответ Сообщение было отмечено Соколиный глаз как решение

Решение

Цитата Сообщение от Соколиный глаз Посмотреть сообщение
Что мешает это сделать тут?
Другой язык с другим синтаксисом?
1
Alvin Seville
342 / 272 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
11.12.2018, 19:12  [ТС] 6
kolorotur, аналога такого кортежного присваивания нет?
0
11.12.2018, 19:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2018, 19:12
Помогаю со студенческими работами здесь

Ошибки: 1) use of class template requires template argument list 2) 'T' : undeclared identifier
Решил подправить свой класс с использованием шаблонов, но столкнулся со следующим косяком. Если я...

'MyQueue' : use of class template requires template argument list
Написал код про шаблоны. Не могу понять почему выводит ошибку во время наследования класса. ошибки...

Ошибка "no instance of function template"
В строках 210 и 214 возникает ошибка 7 IntelliSense: no instance of function template...

argument list for class template is missing
Сделал очередь через односвязный список для интовых значений(все работало), хотел использовать её...

Error: '>>' should be '>>' within a nested template argument list
кто знает че за ошибка, как с ней бороться? 000615.cpp: In function 'int main()':

Ошибка: "function call missing argument list"
При компиляции программы выскакивает сообщение об ошибке: 1.error C3867:...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru