17 / 17 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
1

Шаблоны

03.06.2015, 09:55. Показов 337. Ответов 4
Метки нет (Все метки)

Здравствуйте.
Читая про шаблоны в Википедии (https://ru.wikipedia.org/wiki/... 8B_C%2B%2B) затормозил на этом месте:


Если параметр шаблона можно вывести по нескольким аргументам, то результат выведения должен быть в точности одинаков для всех этих аргументов. Например, следующие вызовы ошибочны:

min (0, 'a');
min (7, 7.0);

Вот как я представляю себе шаблон который удовлетворяет обоим вызовам:

C++
1
2
3
4
5
template< typename T >
void min( T a, T b )
{
  // Do smth
}
Выше есть объявление функции с таким именем, может автор имел ввиду конкретную реализацию или в этих словах есть другой смысл?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.06.2015, 09:55
Ответы с готовыми решениями:

«Шаблоны шаблонов» vs «шаблоны с параметрами-шаблонами».
«Шаблоны шаблонов» vs «шаблоны с параметрами-шаблонами». Есть ли разница в этих понятиях? Если...

Шаблоны. Плохо понимаемые моменты из книги "Шаблоны С++. Справочник разработчика". (Вандевурд, Джосаттис)
Так как изучаю эту книгу, то в некоторых местах возникают вопросы. Чтобы не плодить много тем,...

Помогите писать на С++ через шаблоны. Консуле я писал, но надо писать исползуя шаблоны
В одномерном массиве, состоящем из п вещественных элементов, вычислить: 1) количество элементов...

Шаблоны
Добрый день. Не могли бы объяснить вот этот вопрос: Допускают ли шаблоны вложенность описания?

4
55 / 56 / 34
Регистрация: 29.12.2012
Сообщений: 478
03.06.2015, 10:42 2
C++
1
2
3
4
5
6
7
8
9
10
template< typename T >
// где T означает тип
//min( 5, 5 )//в итоге функция сложит и будет 10(воспримит параметры как int)
//min( 5,5, 5,5 )//в итоге функция сложит и будет 11(воспримит параметры как float)
//min( 5, 5.5 )// ошибка компилятор не знает как сложить разные типи (толи T означает int, толи T означает float)
//T инициализируется во время вызова она может означать только один тип 
void min( T a, T b )
{
  a+b;//даст сумму
}
C++
1
2
3
4
5
6
7
template< typename T >
template< typename V >
//min( 5, 5.5 )//Тут будет корекно T станет int,V станет float
void min( T a, V b )
{
  a+b;//даст сумму//а уже тут произодет простейшее приведение типов (float урежится)
}
0
17 / 17 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
03.06.2015, 16:14  [ТС] 3
Объявил в коде вот такую конструкцию:
C++
1
2
3
4
5
 template<class T>
           void Func(T (*char))
           {
 
           }
Среда пишет: "a template declaration is not allowed here "

Что нужно сделать чтобы можно было ?
0
382 / 280 / 31
Регистрация: 04.09.2009
Сообщений: 1,225
03.06.2015, 16:40 4
Цитата Сообщение от VoltDeMar Посмотреть сообщение
Объявил в коде вот такую конструкцию:
C++
1
2
3
4
5
template<class T>
           void Func(T (*pfunc)(char))
           {
 
           }
0
1378 / 405 / 144
Регистрация: 22.10.2014
Сообщений: 872
03.06.2015, 17:11 5
Черный мечник, Можно ещё так делать.
C++
1
2
3
4
5
6
#include <type_traits>
template<typename T1, typename T2>
typename std::common_type<T1, T2>::type min(T1 a, T2 b)
{
    return (a < b) ? a : b;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.06.2015, 17:11

шаблоны
помогите с задачей пожалуйста нужно описать шаблон класса для хранения последовательности пар ключ...

Шаблоны
ругается на строку &quot;friend class List&lt;T&gt;;&quot;, вот что пишет: 1&gt;c:\users\slava\documents\visual...

шаблоны в си++
кто может сказать где прблема? List.h #ifndef LIST_H #define LIST_H #include&lt;iostream&gt;...

Шаблоны
Здравствуйте не объясните новичку пару аспектов про шаблоны 1)Зачем они нужны 2)Преимущества...

Шаблоны С++
Есть функция Merge из алгоритма сортировки слиянием, она объединяет два массива A и B, результат...

Шаблоны в с++
Зачем при использовании шаблонов пишут, к примеру: template &lt; typename T &gt; T Sum(T a, T b) {...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.