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

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

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

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

11.07.2013, 13:18. Просмотров 340. Ответов 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;
};
Т.е. чтобы тип члена класса определялся в зависимости от значения переданного в шаблон?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2013, 13:18     Тип, зависимый от условия в шаблонах
Посмотрите здесь:

тип cout-a ostrieam? соответствено тип cin-a istream? C++
Вопрос по исключениям в шаблонах классов C++
Доступ к элементам tuple в шаблонах C++
Узнать тип значения, зная тип указателя C++
C++ Посоветуйте сайт или книгу где хорошо изложена информация о ШАБЛОНАХ КЛАССОВ
C++ Подстановка вычисляемого типа в шаблонах
Как сконвертировать свой тип в тип double? C++
Стек на шаблонах - оцените реализацию C++
C++ Класс на шаблонах, менять аргументы шаблона
Дружественные функции в шаблонах C++
Typename в шаблонах класса C++
Приведение одного парметра-типа к другому разыменованному парметру-типу (указателю) в шаблонах C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 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;
Ну или по старинке через специализации.
Tulosba
:)
Эксперт С++
4384 / 3227 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
11.07.2013, 13:41     Тип, зависимый от условия в шаблонах #3
Цитата Сообщение от ForEveR Посмотреть сообщение
Ну или по старинке через специализации.
Судя по описанию (по ссылке) возможная реализация как раз через специализацию.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
11.07.2013, 13:55     Тип, зависимый от условия в шаблонах #4
Tulosba, Ну да. Это по сути тот же mpl::if_c.
Yandex
Объявления
11.07.2013, 13:55     Тип, зависимый от условия в шаблонах
Ответ Создать тему
Опции темы

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