Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Dark Byte
29 / 46 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
Завершенные тесты: 2
1

Класс на шаблонах, менять аргументы шаблона

01.11.2014, 14:20. Просмотров 862. Ответов 4
Метки нет (Все метки)

можно ли менять аргументы шаблона внутри фукции класса? а то у меня не хочет никак работать код типа:

C++
1
2
3
4
5
6
7
8
9
10
template <int n>
struct s
{
    s() { n = 10; }
};
 
int main()
{
    s<0> ss;
}
пишет "error C2106: =: левый операнд должен быть левосторонним значением" на присвоение
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2014, 14:20
Ответы с готовыми решениями:

Аргументы шаблона по умолчанию можно использовать только в шаблоне класса
Помогите разобраться. В чем проблема. VS 2012, Код был написан под VS 2015....

Error C4519: аргументы шаблона по умолчанию можно использовать только в шаблоне класса
void sort_when_two_threads(Iterator first, Iterator last, Compare comp =...

Производный класс, аргументы по умолчанию
Здравствуйте. Есть базовый класс и производный. Проблема в том что в...

[C++11] "Унаследовать" аргументы шаблона?
Есть класс-шаблон. template&lt;typename T, typename O, typename I&gt; class A...

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

4
Toshkarik
1150 / 867 / 90
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
01.11.2014, 14:26 2
Dark Byte, нет конечно.
0
Dark Byte
29 / 46 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
Завершенные тесты: 2
01.11.2014, 14:48  [ТС] 3
блин, жалко... а подскажите тогда как вызвать ошибку компиляции? скажем в шаблоне 2 переменных и если например одна больше другой то ошибка... ну типа:

C++
1
2
template <int min, int max>
struct...
чтобы ошибка была именно компиляции, а не выполнения... ведь передаются аргументы в коде при создании объекта класса, так что можно вычислить какой аргумент больше, может какие нибудь constexpr или типа того?
0
Toshkarik
1150 / 867 / 90
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
01.11.2014, 14:57 4
Лучший ответ Сообщение было отмечено Dark Byte как решение

Решение

static_assert( expression, message ).

C++
1
2
3
4
5
template <int min, int max>
struct A {
   static_assert( max > min, "min > max" );
   ...
};
1
Dark Byte
29 / 46 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
Завершенные тесты: 2
01.11.2014, 15:00  [ТС] 5
Toshkarik, ааа точно забыл, во спс
0
01.11.2014, 15:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2014, 15:00

класс не может содержать список аргументов шаблона
я создал шаблон заменил его в коде вместо vector и теперь везде на месте...

Передать шаблонный класс, как параметр шаблона
нужно не используя stl написать аналог класса list. написал болванку и застрял...

Нужно создать класс шаблона для работы c массивом 2х2
Нужно создать класс при помощи шаблона (template), c массивом...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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