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

«Шаблоны шаблонов» vs «шаблоны с параметрами-шаблонами». - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Алгоритм для извлечения квадратного корня x из вещественного числа y http://www.cyberforum.ru/cpp-beginners/thread174028.html
Составить блок-схему алгоритма для вычисления квадратного корня x из вещественного числа y. Примечание. Вычисление квадратного корня можно осуществить методом последовательного приближения с...
C++ Ссылки Hi all Нельзя возвращать ссылку, если возвращаемое значение является локальной переменоой как здесь, потому что локальные переменные уничтожаются после выхода из функции Код: Fraction&... http://www.cyberforum.ru/cpp-beginners/thread174011.html
return *char C++
если функция дожна возвращать строку... как это сделать? я написала так: char* GetString(char *filename) { FILE *f1; char str; f1=fopen(filename,"r"); if (f1!=0) fgets(str,100,f1);...
Перевод из 10 в 2 систему через маску C++
Здравствуйте! Пожалуйста помогите написать программу для перевода чисел из 10 в 2 системы счисления через маску Написать программу на языке C++, читающую со стандартного ввода 4 деся- тичных...
C++ Переход на классы http://www.cyberforum.ru/cpp-beginners/thread173986.html
Эмн... Вот тут возникла такая ситуация... Есть задание и код (написанный мною естессна), но его нужно переписать на классы, ибо сейчас он написал по-обычному(... Задание звучит так: При записи...
C++ альфа-наложение цвета есть массив пикселей, рисуется несколько графиков со сглаживанием (Графики рисуются последовательно). Нужно в местах пересечения пикселей использовать альфа-наложение, т.е. есть цвет А(0x8800FF00)... подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1638 / 1010 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
09.10.2010, 12:44
Понятие "шаблон шаблонов" мне незнакомо. Шаблоны в С++ могут иметь в качестве параметра целочисленную константу времени компиляции, конкретный тип (в том числе и инстанциацию шаблона) и шаблон (у буржуев такое модно называть template template parameters). Шаблон A, принимающий в качестве параметра шаблон B, обычно делает это затем, чтобы так или иначе инстанциировать B. Например, создавая какой-то шаблон, занимающийся работой с набором данных, мы можем указывать ему, в каком контейнере он должен хранить данные: динамический массив, список или что-то другое.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
template <typename Data, template<typename T> class Container>
class MyDataProcessor {
public:
// ...
private:
    Container<Data> myData;
};
 
// Стандартные контейнеры имеют дополнительный параметр шаблона - аллокатор.
// А в MyDataProcessor нужен контейнер с одним параметром.
template<typename T> class StdVector: public std::vector<T> {};
template<typename T> class StdList: public std::list<T> {};
 
// Создадим обработчик данных на основе списка для int и на основе вектора для float
MyDataProcessor<int, StdList> intProcessor;
MyDataProcessor<float, StdVector> floatProcessor;
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru