3 / 3 / 0
Регистрация: 07.02.2016
Сообщений: 140
1

Как правильно создать шаблон функции

04.09.2016, 14:20. Показов 552. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
как мне правильно создать шаблон,чтобы работала ф-ция sub() ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
using namespace std;
template<typename T1,typename T2>
void sum(T1 a, T2 b) { return a + b; }
void sub(T1 a, T2 b) { return a - b; }
int main(int argc, char*argv[])
{
    cout << "This calculator perfoms arithmetic operations such: ' + ',' - ',' / ','*'\n";
    cout << "enter two numbers please\n";
    int a = NULL;
    int b = NULL;
 
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.09.2016, 14:20
Ответы с готовыми решениями:

Как правильно создать шаблон?
Здравствуйте! Понадобилось в качестве параметра для класса передать функцию сравнения. В stl, к...

Как правильно создать шаблон на функцию, которая использует вектор?
есть вот такая шаблонная функция, template &lt;typename T&gt; void rev(const std::vector &lt;T&gt;...

Как создать шаблон функции отдельно для знаковых и беззнаковых чисел
Имеется задача, создать шаблонную функцию для конвертации числа в строку. Но проблема в том, что...

Как правильно создать динамический массив из функции
Вот так ругается компилятор: int** i_matrix; f(i_matrix,N, M); ...

13
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
04.09.2016, 14:30 2
nfnicolas,
C++
1
2
3
4
5
6
7
#include <type_traits>
 
template<typename T1, typename T2, typename CommonT = typename std::common_type<T1, T2>::type>
CommonT sub(const T1& l, const T2& r)
{
    return l - r;
}
1
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.09.2016, 14:41 3
Цитата Сообщение от nfnicolas Посмотреть сообщение
C++
1
2
int a = NULL; 
int b = NULL;
Что чудо-код? NULL применяют к указателям.

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
 
template<typename T1,typename T2>
auto sub(T1 a, T2 b) { return a - b; }
 
int main() 
{
    std::cout <<  sub(5,3);
 
 
    return 0;
}
http://ideone.com/GC2oKq

Или же
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
 
auto sub(auto a, auto b) { return a - b; }
 
int main() 
{
    std::cout <<  sub(5,3);
 
 
    return 0;
}
http://ideone.com/I5f8I4
0
3 / 3 / 0
Регистрация: 07.02.2016
Сообщений: 140
04.09.2016, 14:51  [ТС] 4
спасибо за NULL, но ваш код не работает,у меня ведь так же объявлено)))
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.09.2016, 14:56 5
Цитата Сообщение от nfnicolas Посмотреть сообщение
спасибо за NULL, но ваш код не работает,у меня ведь так же объявлено)))
Вероятно ваш компилятор не поддерживает С++11/С++14

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
template<typename R, typename T1, typename T2>
R sub(T1 a, T2 b) 
{ 
   return a - b; 
}
 
int main() 
{
    std::cout <<  sub<int>(5,3);
 
    return 0;
}
http://ideone.com/Ri0enB
0
3 / 3 / 0
Регистрация: 07.02.2016
Сообщений: 140
04.09.2016, 14:57  [ТС] 6
Цитата Сообщение от Avazart Посмотреть сообщение
__________________
2015 ...все поддерживает
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.09.2016, 14:58 7
Цитата Сообщение от nfnicolas Посмотреть сообщение
2015 ...все поддерживает
Я дал ссылки на онлайн компилятор где все собирается.
Так что что либо все же не поддерживает, либо руки кривые скопипастить не можете.
0
3 / 3 / 0
Регистрация: 07.02.2016
Сообщений: 140
04.09.2016, 14:59  [ТС] 8
вы не поняли вопроса. На один шаблон не хотят работать две и более ф-ции. Только с одной работают. Мне надо,чтобы работало 4 ф-ции
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.09.2016, 15:04 9
Цитата Сообщение от nfnicolas Посмотреть сообщение
На один шаблон не хотят работать две и более ф-ции
Это как?
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
04.09.2016, 15:48 10
Nosey, всегда было интересно, а что если кто-то будет упорно всовывать третий тип в шаблон явно - указывая что вот написано 3 шт, вот и буду указывать.
0
Nosey
04.09.2016, 16:03
  #11

Не по теме:

rikimaru2013, Я надеюсь охота не ваше хобби, а-то обидно будет, когда костыли нечем держать будет :)

0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
04.09.2016, 16:16 12
Цитата Сообщение от Nosey Посмотреть сообщение
C++
1
template<typename T1, typename T2, typename CommonT = typename std::common_type<T1, T2>::type>
Это может не сработать. Дело в том, что нам не известен тип выражения l-r.
Это не обязательно должен быть некий общий тип.
1
rikimaru2013
04.09.2016, 16:19
  #13

Не по теме:

Nosey, но вопрос то актуальный)

0
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
04.09.2016, 16:45 14
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
но вопрос то актуальный)
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
всегда было интересно, а что если кто-то будет упорно всовывать третий тип в шаблон явно - указывая что вот написано 3 шт, вот и буду указывать.
А собственно в чем тут проблема? Указывайте. Это просто третий параметр с дефолтным значением.
0
04.09.2016, 16:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.09.2016, 16:45
Помогаю со студенческими работами здесь

создать шаблон функции
Помогите с шаблонами функций, пожалуйста, первый пункт выполнил вроде. Создать: 1)перегружаемые...

Написать шаблон функции, и Создать класс.
Помогите ктота пожалуста ... Ето надо на С++ зделать. Спасибо за рание! 1. Написать шаблон...

Создать шаблон функции для построения очереди
Помогите, пожалуйста, сделать задачу: Реализовать шаблон функции для построения очереди и работы с...

Сумма элементов массива до максимального. Создать шаблон функции
нужно оформить перегрузку функции, кто может подсказать? #include &quot;stdafx.h&quot; #include &lt;iostream&gt;...


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

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

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