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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вызов конструктора для this в констукторе копирования http://www.cyberforum.ru/cpp-beginners/thread347675.html
Мое почтение, уважаемые! Подскажите, пожалуйста, как вызвать конструктор для this в констукторе копирования: template<class Data> List<Data>::List(const List& list) { List(); //why do not...
C++ программа завершается аварийно запускаю компилятор, все запустилось, работает (меню из кучи условий if-else). выбираю любой пункт меню и он работает, после этого надо вернуться на главное, но не пашет, вылезает ошибка - прекращена... http://www.cyberforum.ru/cpp-beginners/thread347654.html
C++ операция <<::>>
имею код char Car::*Get_Marka(){ return marka ; } char Car::*Get_Color() { return color ; } bool Car::Get_Rastamojena() { return rastamojana ; } float Car::Get_Obyom_Dvigatelya() { return ...
Помогите переписать C++
Есть пример на Delphi: data:='строка'; IdHTTP1.Get('Ссылка'+data); А как будет выглядеть на c++? Можно с WinAPI.
C++ std::cin http://www.cyberforum.ru/cpp-beginners/thread347606.html
const int MAX = 256; int main() { char buf; std::cout<<(std::cin>>buf); return 0; } Я в консоли вижу странный вывод и не пойму что это есть такое? Что возвращает выражение скобках?...
C++ CDocument::OnSaveDocument указать фильтр для диалогового окна сохранения файла Добрый день Создал класс наследуемый от CDocument и в нем переопределяется виртуальная функция OnSaveDocument. Пробовал трассировать, она исполняется уже после того как появилось диалоговое окно... подробнее

Показать сообщение отдельно
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587

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

03.09.2011, 09:48. Просмотров 1281. Ответов 15
Метки (Все метки)

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
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <clocale>
using namespace std;
struct box
{
    char mak[40];
    float m;
    float n;
    float y;
    float z;
};
template <class any> any funk3(any x, any y);// Шаблон.
template <> box& funk3<box&>(box &x, box &y);// Специализация.
int main()
{   
    setlocale(0, "");
    box st = 
    {
        "12345",
        1.1f,
        2.2f,
        3.3f,
        4.4f
    };
    box st2 = 
    {
        "12345",
        1.2f,
        2.3f,
        3.4f,
        4.5f
    };
    int a = 3, b = 4;
    cout << "Первый вызов  " << funk3(a, b) << endl;
    box st3;
    st3 = funk3(st, st2);
    cout << "Второй вызов  " << st3.z << endl;
    system ("pause");
    return 0;
}        
template <class any> any funk3(any x, any y)
{
    any z = x;
    cout << "Шаблон" << endl;
    return z;
}
template <> box& funk3<box&>(box &x, box &y)
{
    cout << "Специализация" << endl;
    return y;
}
Подскажите, пожалуйста, почему не срабатывает специализация при втором вызове функции funk3? Если специализацию переписать как: template <> box funk3<box>(box x, box y), то срабатывает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru