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

Шаблонные функции - C++

Восстановить пароль Регистрация
 
KrekerOK
 Аватар для KrekerOK
57 / 57 / 15
Регистрация: 04.07.2013
Сообщений: 515
Завершенные тесты: 1
12.04.2014, 11:32     Шаблонные функции #1
Доброго времени суток. Есть шаблонная функция(двоичный сумматор прямого кода):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
template <class T> void Main_register::badc(T *regist, T term)
{
    int count_bit = sizeof(term)*8;
    char remainder=0, s1, s2, masc;
    for (Int64 i=0;i<count_bit;i++)
    {
        s1 = *regist & Convert::ToInt64(1<<i)?1:0;
        s2 = term & Convert::ToInt64(1<<i)?1:0;
        if((s1+s2+remainder)%2!=0)
            *regist |= Convert::ToInt32(1<<i);
        else
        {
            masc ^= masc;
            masc |= Convert::ToInt64(1<<i);
            masc = ~masc;
            *regist &= masc;
        }
        if((s1+s2+remainder)>=2)
            remainder = 1;
        else
            remainder = 0;
    }
}
Это её вызов, где m_r - класс в котором описана функция(так работает):
C++
1
2
 int x = 10, y = 20;
 m_r->badc(&x,y);
Но, если я хочу передать в функцию те же х и у как char, то я вызываю так:
C++
1
2
 int x = 10, y = 20  
m_r->badc((char)(&x),(char)y);
Вот тут и появляется ошибка:
error C2784: void Main_register::badc(T *,T): не удалось вывести аргумент шаблон для "T *" из "char"
Что-то я толком не могу понять чего ему надо, подскажите пожалуйста кто знает.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2014, 11:32     Шаблонные функции
Посмотрите здесь:

C++ Шаблонные функции
Шаблонные функции C++
C++ Шаблонные функции
C++ Шаблонные функции
Шаблонные функции C++
Шаблонные функции C++
C++ шаблонные функции
Шаблонные функции в C++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
StailGot
27 / 22 / 6
Регистрация: 25.08.2013
Сообщений: 41
12.04.2014, 12:44     Шаблонные функции #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от KrekerOK Посмотреть сообщение
emplate <class T> void Main_register::badc(T *regist, T term)
Тут T *regist - указатель, а здесь
Цитата Сообщение от KrekerOK Посмотреть сообщение
m_r->badc((char)(&x),(char)y);
адрес приводится к числу типа char.

Попробуйте так
C++
1
m_r->badc((char*)(&x),(char)y);
KrekerOK
 Аватар для KrekerOK
57 / 57 / 15
Регистрация: 04.07.2013
Сообщений: 515
Завершенные тесты: 1
12.04.2014, 12:51  [ТС]     Шаблонные функции #3
Работает. Огромное Вам спасибо!
Yandex
Объявления
12.04.2014, 12:51     Шаблонные функции
Ответ Создать тему
Опции темы

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