С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
3 / 3 / 2
Регистрация: 07.02.2013
Сообщений: 185
1

Параметры типа класса шаблона

31.08.2015, 19:08. Показов 559. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
смотрите был такой код в файле заголовочном:
C++
1
template <typename DataType> class CircleList {
.....................
а преподаватель изменил его и стал такой код:
C++
1
template <typename DataType, int K> class CircleList {
......................
и он задает вопрос такой:
можно ли среди параметров типа в шаблоне класс потребовать подстановку какойто константы и зачем оно понадобится?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Блог
31.08.2015, 19:08
Ответы с готовыми решениями:

Возврат объекта шаблонного типа от типа Type из специализации шаблона метода от того же типа
Доброго времени суток, пишу класс содержащий несколько std::set от разных типов, нужно сделать...

Определение метода-шаблона за пределами шаблона класса
День добрый! Разбираюсь в шаблонах, решил копнуть поглубже. Вот пример: template &lt;typename T1&gt;...

параметры шаблона
1) работа с параметрами шаблона; 2) создайте класс для обьекта типа &quot;муз. проигрыватель&quot;.постройте...

Параметры шаблона
Доброго всем вечера. Вопрос по теории, который не выходит нагуглить. К примеру, нужно хранить...

3
Эксперт С++
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
31.08.2015, 19:17 2
Цитата Сообщение от levgen Посмотреть сообщение
ожно ли среди параметров типа в шаблоне класс потребовать подстановку какойто константы и зачем оно понадобится?
ну например так:


http://rextester.com/AJTG72666

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
#include <iostream>
 
 
// --- T - тип массива
// --- N - количество элементов
// вся информация выводится автоматически
template<class T, size_t N>
void view(const T (&arr)[N])
{
 
    std::cout<< "array = {";
    for(const auto& i: arr)
        std::cout<< i<<",";
    std::cout<< "}\n";
}
 
 
 
int main()
{
    std::cout << "Hello, world!\n";
    
    
    int ar[]={1,2,3};
    
    // --- размер массива выведется автоматически
    view(ar);
    
    float far[]={1.5f ,2.3f ,3.6f };
    view(far);
    
}
Добавлено через 48 секунд
Цитата Сообщение от levgen Посмотреть сообщение
можно ли среди параметров типа в шаблоне класс потребовать подстановку какойто константы и зачем оно понадобится?
1.
можно.

2.
100% инлайн функциальности времени компиляции.

3.
для нужд метапрограммирования.
1
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
31.08.2015, 20:02 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
template<int n>
class Factorial {
public:
    static const int f = Factorial<n - 1>::f * n;
};
 
template<>
class Factorial<0> {
public:        
    static const int f = 1;
};
 
int main() {
    std::cout << Factorial<5>::f << std::endl; // 120
}
1
2337 / 1825 / 753
Регистрация: 27.07.2012
Сообщений: 5,400
31.08.2015, 20:17 4
Цитата Сообщение от levgen Посмотреть сообщение
и он задает вопрос такой
Какой коварный тип!

Цитата Сообщение от levgen Посмотреть сообщение
можно ли среди параметров типа в шаблоне класс потребовать подстановку какойто константы и зачем оно понадобится?
Можно. Зачем? Круг задач весьма широк. В основном - метапрограммирование. Но есть и другие. Можно, например, какой-нить класс буфера фиксированной длины создать, длину в параметре шаблона задавать.

Ну или банально:
C++
1
2
template <bool v> class cassert;
template<> class cassert<true> {};
1
31.08.2015, 20:17
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
31.08.2015, 20:17
Помогаю со студенческими работами здесь

Параметры шаблона
как в общем можно объяснить то что находиться в угловых скобках после template, я понимаю что...

Явное создание экземпляра класса и явная специализация шаблона класса
Всем добрый день! Не могу разобраться - эти две технологии дают один и тот же результат? В каких...

Шаблоны как параметры шаблона
Привет, в книге увидел такой пример template&lt;template&lt;typename T&gt; class x&gt; class y; но из...

Почему шаблонный параметр-шаблон не принимает другие параметры шаблона
Т.е. нельзя вместо template &lt;typename T, template &lt;typename _Ty, class _Aloc = allocator&lt;_Ty&gt; &gt;...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru