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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
#1

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

24.10.2012, 09:01. Просмотров 463. Ответов 12
Метки нет (Все метки)

Видел шаблоны типа:

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     В чем смысл создания шаблона с заранее известным передаваемым типом
Посмотрите здесь:

Кортеж с абстрактным типом как параметр шаблона + smart_ptr - C++
Имеем кортеж (std::tuple) с абстрактным типом, параметризуем этим шаблон класса, экземпляров кортежа нигде не создаём. Создаём экземпляры...

В чем смысл указателей? - C++
Дорогие друзья, не могу понять смысл указателей в С++? Для чего они нужны? Если не трудно на реальном примере объясните ,пожалуйста.

В чем смысл полиморфизма - C++
Объясните, пожалуйста, смысл полиморфизма. Не могу никак вникнуть. Где и как он используется? И примерчик, пожалуйста

Ошибка при попытке создания шаблона - C++
В чём ошибка? Функции Map::isGardenWithoutWallFlag, Map::setNothing, Map::incrementRoad, Map::setFlagWall имеют действительно такие...

В чем смысл виртуальных функций? - C++
Читаю книгу Джесс Либерти 'С++ за 21 день', не смотря на глупое название, книга очень грамотная и мне очень нравится... но прочитав...

В чем смысл косой черты в #include - C++
пытаюсь собрать проект QTшный в VS2010 собственно что означает такая косая? что-то с путём к хедеру? #include &quot;qwt/qwt_plot.h&quot; ...

Что такое Nod и в чем его смысл? - C++
Что такое Nod и в чем его смысл?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 226
Регистрация: 12.12.2009
Сообщений: 7,222
Записей в блоге: 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
Форумчанин
Эксперт С++
4479 / 2841 / 226
Регистрация: 12.12.2009
Сообщений: 7,222
Записей в блоге: 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
Форумчанин
Эксперт С++
4479 / 2841 / 226
Регистрация: 12.12.2009
Сообщений: 7,222
Записей в блоге: 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
В астрале
Эксперт С++
7967 / 4729 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
24.10.2012, 10:33     В чем смысл создания шаблона с заранее известным передаваемым типом #9
Kgfq, Что значит "быстрее"? Этап компиляции и этап выполнения принципиально разные вещи
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
24.10.2012, 10:36  [ТС]     В чем смысл создания шаблона с заранее известным передаваемым типом #10
ForEveR, мне казалось, программисты ориентируются на скорость работы программы у пользователя
ForEveR
В астрале
Эксперт С++
7967 / 4729 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 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++
Объясните, в чем здесь смысл перегрузки: inline bool operator == ( const char *Name ) const { return this-&gt;Name.c_str( )...

Почему в данном случае работа с заранее выделенной памятью медленнее чем с динамической? - C++
Написал функцию которая на основе списка выделяет память и при каждом вызове возвращает указатель на следующий элемент для объекта. Код...

Шаблоны, чем отличаются два шаблона - C++
Доброго времени суток! Продолжил читать книгу &quot;Решение сложных задач на С++&quot;, в ней есть задача - отправка содержимое из потока ввода в...

Как правильно производится наследование элементов от шаблона класса? В чем ошибка? - C++
Приведу чисто условный пример. Есть какой-нибудь шаблон класса: template &lt;class tempType&gt; class Base { protected: tempType...

В чем разница создания объекта? - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; class B {private: int b1,b2; public: B() {cout&lt;&lt;&quot;Constructor B without...


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

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

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