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

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

Войти
Регистрация
Восстановить пароль
 
i8086
0 / 0 / 0
Регистрация: 10.01.2013
Сообщений: 9
#1

Тип, зависимый от условия в шаблонах - C++

11.07.2013, 13:18. Просмотров 381. Ответов 3
Метки нет (Все метки)

Возможно ли реализовать подобное:
C++
1
2
3
4
5
6
7
template <uint8_t bits>
class test {
    // если bits <= 8 typedef uint8_t storageType;
    // если bits <= 16 typedef uint16_t storageType;
    // ...
    storageType guts;
};
Т.е. чтобы тип члена класса определялся в зависимости от значения переданного в шаблон?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2013, 13:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Тип, зависимый от условия в шаблонах (C++):

Дружественные функции в шаблонах - C++
Как использовать дружественные функции в шаблонах? ( C++ Builder)

ошибка в шаблонах функций - C++
Есть у меня программа из нескольких файлов . с шаблонами для функций ... компилятор выдает следующий ошибку -&gt; &quot;/main.cpp:17: undefined...

Typename в шаблонах класса - C++
В таком шаблоне: template &lt;typename T, int n, bool islong=???&gt; class CounterA{... требуется распознать тип, то есть переменная islong...

Вопрос по исключениям в шаблонах классов - C++
Кто подскажет как реализовать исключения в следующей задаче: Создать шаблонный класс, в котором создать одномерный массив и найти...

Доступ к элементам tuple в шаблонах - C++
Собственно, не могу понять как работать с элементами кортежа в цикле, не получается получить к ним доступ. Подскажите, кто знает, как это...

Подстановка вычисляемого типа в шаблонах - C++
Товарищи. Помогите разобраться с шаблонами. С шаблонами начал разбираться вчера, и потому излагаю задачу полностью, дабы не быть...

3
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
11.07.2013, 13:25 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
i8086, Да, почему нет. http://en.cppreference.com/w/cpp/types/conditional в помощь

C++
1
2
typedef typename std::conditional<(bits <= 8), uint8_t,
typename std::conditional<(bits <= 16), uint16_t, uint32_t>::type>::type storageType;
Ну или по старинке через специализации.
3
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
11.07.2013, 13:41 #3
Цитата Сообщение от ForEveR Посмотреть сообщение
Ну или по старинке через специализации.
Судя по описанию (по ссылке) возможная реализация как раз через специализацию.
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
11.07.2013, 13:55 #4
Tulosba, Ну да. Это по сути тот же mpl::if_c.
0
11.07.2013, 13:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2013, 13:55
Привет! Вот еще темы с ответами:

Стек на шаблонах - оцените реализацию - C++
просто хочу узнать чужое мнение, написал стек через шаблоны, оцените реализацию :) template &lt;typename T&gt; class Stack { private: ...

Класс на шаблонах, менять аргументы шаблона - C++
можно ли менять аргументы шаблона внутри фукции класса? а то у меня не хочет никак работать код типа: template &lt;int n&gt; struct s { ...

Const int& ссылки и константы в шаблонах - C++
Есть шаблон. В шаблоне есть константа int. Константу надо передать в STL функцию, принимающую const int&amp; в качестве аргумента. Однако же,...

Приведение одного парметра-типа к другому разыменованному парметру-типу (указателю) в шаблонах - C++
Здравствуйте! изучаю C++, и есть такой вопрос, можно ли при инстанцировании, допустим, шаблонной функции привести один параметр-тип к...


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

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

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