13 / 13 / 7
Регистрация: 21.04.2013
Сообщений: 245
|
||||||
1 | ||||||
Ошибка компиляции: template-id does not match any template declaration17.03.2014, 23:23. Показов 4678. Ответов 6
Метки нет (Все метки)
Здравствуйте. Помогите, пожалуйста:
g++ -Wall -c "main.cxx" (в каталоге: /home/drew/Документы/dev/c++/Stephen Prata/8.6) main.cxx:9:7: ошибка: template-id «maxn<char*>» for «char* maxn(char*, const int*)» does not match any template declaration main.cxx: В функции «int main(int, char**)»: main.cxx:15:6: предупреждение: неиспользуемая переменная «ari» [-Wunused-variable] main.cxx:17:9: предупреждение: неиспользуемая переменная «ard» [-Wunused-variable] main.cxx:19:14: предупреждение: неиспользуемая переменная «ars» [-Wunused-variable] main.cxx: At global scope: main.cxx:43:7: ошибка: template-id «maxn<char*>» for «char* maxn(char*, const int*)» does not match any template declaration Сборка завершилась с ошибкой. Только учу сейчас шаблоны и специализации, поэтому не могу разобраться с ошибками (с предупреждениями там все ясно).
0
|
17.03.2014, 23:23 | |
Ответы с готовыми решениями:
6
Ошибка: friend declaration declares a non-template function <Template>. Ошибка компиляции Ошибка с django.Template.Template Error: template declaration of (Code::Blocks) |
2277 / 1768 / 741
Регистрация: 27.07.2012
Сообщений: 5,251
|
||||||||||||||||
17.03.2014, 23:37 | 2 | |||||||||||||||
Специализация шаблонной функции не соответствует основному шаблону:
Либо, если нужен именно char*:
1
|
13 / 13 / 7
Регистрация: 21.04.2013
Сообщений: 245
|
|
17.03.2014, 23:47 [ТС] | 3 |
Да, нужно именно char*.
Аа, понял, у меня же: const char* ars[ars_size] отсылается аргументом к шаблону, поэтому и параметр должен быть const char** ar. Спасибо!! Добавлено через 6 минут Не по теме: Ну, всмысле, будет отсылаться (там еще не реализовано).
0
|
2277 / 1768 / 741
Регистрация: 27.07.2012
Сообщений: 5,251
|
|||||||||||
17.03.2014, 23:48 | 4 | ||||||||||
Сообщение было отмечено andrejap как решение
Решение
Некий тип и указатель на этот тип - это разные типы. Как int и string, к примеру.
Если в шаблоне написано
0
|
13 / 13 / 7
Регистрация: 21.04.2013
Сообщений: 245
|
|
17.03.2014, 23:55 [ТС] | 5 |
Разъяснил, спасибо!
0
|
4 / 3 / 0
Регистрация: 22.08.2014
Сообщений: 80
|
||||||
15.08.2016, 03:34 | 6 | |||||
Тоже решаю это задание и столкнулся с такой сложностью: по условию специализация должна возвращать адрес первой максимальной по длине строки в массиве, то есть, тип возвращаемого значения должен быть char**, однако, судя по написанному здесь, тип возвращаемого значения для специализации должен быть char*. Если поменять специализацию на char**, то получается, что аргумент функции нужно менять с char** на char***? По крайней мере, вариант
0
|
2277 / 1768 / 741
Регистрация: 27.07.2012
Сообщений: 5,251
|
|
15.08.2016, 10:11 | 7 |
VergilYamato, если в качестве строки используется char*, то адрес этой строки - это адрес её первого символа. И для специализации надо использовать char*.
0
|
15.08.2016, 10:11 | |
15.08.2016, 10:11 | |
Помогаю со студенческими работами здесь
7
Ошибки: 1) use of class template requires template argument list 2) 'T' : undeclared identifier Template definition of non-template при использовании частичной спецификации шаблонов 'MyQueue' : use of class template requires template argument list В чем различие template <typename T> от template <class T> ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |