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

Почему я не попадаю в специализацию шаблона? - C++

Восстановить пароль Регистрация
 
ture
 Аватар для ture
417 / 310 / 120
Регистрация: 27.11.2014
Сообщений: 1,004
14.09.2015, 11:00     Почему я не попадаю в специализацию шаблона? #1
Почему я не попадаю в специализацию шаблона?
template<> box& max(box&, box&);

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
#include<iostream>
 
struct box {
    char maker[40];
    float height;
    float width;
    float length;
    float volume;
};
 
 
template<typename T> T    max(T, T);
template<>           box& max(box&, box&);
 
int main() {
    box a = {"6abc", 1, 2, 3, 6};
    box b = {"12 abc", 2, 2, 3, 12};
 
    std::cout << max((a),(b)).maker;  //НЕ ПОПАДАЮ В СПЕЦИАЛИЗИРОВАННЫЙ ШАБЛОН, если не указываю его max<box&>(a,b).maker
 
    system("pause");
    return 0;
}
 
template<typename T> T max(T a, T b) {
    return a > b ? a : b;
}
 
template<> box& max(box &a, box &b) {
    return a.volume > b.volume ? a : b;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2015, 11:00     Почему я не попадаю в специализацию шаблона?
Посмотрите здесь:

C++ Почему не срабатывает специализация шаблона?
C++ Почему не создается специализация шаблона функции
Не получается создать специализацию шаблона класса C++
О специализации шаблона: почему код компилируется? C++
Деструктор шаблона описанный в отдельном файле не линкуется. Почему? C++
Специализация шаблона для char * (рабочий код, но непонятно почему) C++
Почему вывод аргументов не осуществляется для классового шаблона? C++
Не могу создать специализацию шаблона ф-ции C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
14.09.2015, 11:40     Почему я не попадаю в специализацию шаблона? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include<iostream>
 
struct box {
    char maker[40];
    float height;
    float width;
    float length;
    float volume;
};
 
template<typename T> T& max(T& a, T& b) {
    return a > b ? a : b;
}
 
template<> box& max(box& a, box& b) {
    return a.volume > b.volume ? a : b;
}
 
int main() {
    box a = {"6abc", 1, 2, 3, 6};
    box b = {"12 abc", 2, 2, 3, 12};
    std::cout << max(a, b).maker;  
    system("pause");
    return 0;
}
Обратите внимание на ссылки.
Yandex
Объявления
14.09.2015, 11:40     Почему я не попадаю в специализацию шаблона?
Ответ Создать тему

Метки
шаблоны
Опции темы

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