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

шаблоны и параметры - C++

Восстановить пароль Регистрация
 
no0ker
100 / 87 / 4
Регистрация: 17.12.2010
Сообщений: 416
08.09.2013, 15:30     шаблоны и параметры #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// есть вот такой шаблон
template <typename T, int L>
struct qu{};
 
// компилируется вот это
qu<int, 13> test1;
 
// и вот это
const n = 15;
qu<int, n> test2;
 
// вот это не компилируется
int a;
std::cin>>a;
qu<int,a> test3;
Как сделать так, чтобы последний фрагмент компилировался? Или это невозможно?


Ошибка вот такая - локальная переменная не может использоваться в качестве аргумента, не являющегося типом
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
08.09.2013, 15:32     шаблоны и параметры #2
невозможно, параметризация по переменным невозможна
вы можете придумать какой в этом должен быть смысл?
инстанцирование шаблона проходит в момент компиляции, в этот момент значения переменной еще не существует. это вам не лисп
no0ker
100 / 87 / 4
Регистрация: 17.12.2010
Сообщений: 416
08.09.2013, 15:38  [ТС]     шаблоны и параметры #3
Цитата Сообщение от alex_x_x Посмотреть сообщение
невозможно, параметризация по переменным невозможна
вы можете придумать какой в этом должен быть смысл?
инстанцирование шаблона проходит в момент компиляции, в этот момент значения переменной еще не существует. это вам не лисп
ну, например, какой-нибудь массив определенной максимальной длины и определенного типа, со своими функциями специфическими.
в процессе работы определяется размер файла, и согласно ему создается массив определенной длины.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
08.09.2013, 18:00     шаблоны и параметры #4
no0ker, опять же - тогда не шаблонами или не в с++
Yandex
Объявления
08.09.2013, 18:00     шаблоны и параметры
Ответ Создать тему
Опции темы

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