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

В чем смысл создания шаблона с заранее известным передаваемым типом - C++

Восстановить пароль Регистрация
 
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
24.10.2012, 09:01     В чем смысл создания шаблона с заранее известным передаваемым типом #1
Видел шаблоны типа:

C++
1
2
3
4
template<int N>
struct fact{
   static const int v = fact<n-1>::v * n;
};
Объясните мне, в чем смысл создавать шаблон с заранее известным передаваемым типом?
Мне казалось, что шаблоны существуют для того, что бы сделать передаваемый тип любым.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2012, 09:01     В чем смысл создания шаблона с заранее известным передаваемым типом
Посмотрите здесь:

C++ Что такое Nod и в чем его смысл?
В чем смысл виртуальных функций? C++
C++ Кортеж с абстрактным типом как параметр шаблона + smart_ptr
В чем смысл косой черты в #include C++
Ошибка при попытке создания шаблона C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
24.10.2012, 09:12     В чем смысл создания шаблона с заранее известным передаваемым типом #2
http://www.solarix.ru/for_developers...gramming.shtml
там же есть ссылка http://www.solarix.ru/for_developers...actorial.shtml
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
24.10.2012, 09:22  [ТС]     В чем смысл создания шаблона с заранее известным передаваемым типом #3
Kastaneda, хм. То есть через шаблоны можно передавать константы?
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
24.10.2012, 09:38     В чем смысл создания шаблона с заранее известным передаваемым типом #4
Ну да, например класс std::array<class T, size_t N>
Пример создания объекта:
C++
1
std::array<int, 10> arr; // создаем массив int из 10 элементов
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
24.10.2012, 09:55  [ТС]     В чем смысл создания шаблона с заранее известным передаваемым типом #5
Kastaneda, но должна же быть разница между: передать константу через шаблон и как аргумент?

Через шаблон все будет быстрее, так?
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
24.10.2012, 10:01     В чем смысл создания шаблона с заранее известным передаваемым типом #6
Цитата Сообщение от Kgfq Посмотреть сообщение
Через шаблон все будет быстрее, так?
Через шаблон - на этапе компиляции, как аргумент - на этапе выполнения. Это разные вещи.
Я так понял имеется ввиду аргумент функции?
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
24.10.2012, 10:03     В чем смысл создания шаблона с заранее известным передаваемым типом #7
Объясните мне, в чем смысл создавать шаблон с заранее известным передаваемым типом?
Шаблону всегда передается заранее известный параметр, так как шаблон генерируется компилятором на основе типов и значений параметров.
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
24.10.2012, 10:04  [ТС]     В чем смысл создания шаблона с заранее известным передаваемым типом #8
Kastaneda, да, имеется ввиду как аргумент функции.

В итоге получится, что шаблон использует переданное значение на этапе компиляции, а это быстрее, чем если бы данные передавались во время исполнения. Так?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
24.10.2012, 10:33     В чем смысл создания шаблона с заранее известным передаваемым типом #9
Kgfq, Что значит "быстрее"? Этап компиляции и этап выполнения принципиально разные вещи
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
24.10.2012, 10:36  [ТС]     В чем смысл создания шаблона с заранее известным передаваемым типом #10
ForEveR, мне казалось, программисты ориентируются на скорость работы программы у пользователя
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
24.10.2012, 10:54     В чем смысл создания шаблона с заранее известным передаваемым типом #11
Kgfq, Ну как бэ, если размышлять так - то естественно работает программа быстрее.
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
24.10.2012, 11:05  [ТС]     В чем смысл создания шаблона с заранее известным передаваемым типом #12
ForEveR, Вы размышляете иначе?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2012, 12:08     В чем смысл создания шаблона с заранее известным передаваемым типом
Еще ссылки по теме:

Шаблоны, чем отличаются два шаблона C++
В чем смысл полиморфизма C++
C++ В чем разница между типом функции и типом возвращаемого значения?

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

Или воспользуйтесь поиском по форуму:
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
24.10.2012, 12:08     В чем смысл создания шаблона с заранее известным передаваемым типом #13
Kgfq, Я разработчик. Мне так же важно сколько времени программа собирается и переносить любые вычисления, которые могут выполниться во время компиляции на этот этап - это конечно круто, однако время сборки увеличивается прямо пропорционально. Собственно, попробуйте использовать boost::spirit и увидите, сколько ваш исходный код будет компилироваться. Для маленькой программы - не критично, а вот собирать некий мета-проект в тысяч 10 файлов - удовольствие ниже среднего.
Yandex
Объявления
24.10.2012, 12:08     В чем смысл создания шаблона с заранее известным передаваемым типом
Ответ Создать тему
Опции темы

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