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

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

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

Как ограничить параметр типа шаблона только числовыми типами данных? - C++

02.08.2013, 12:41. Просмотров 436. Ответов 4
Метки нет (Все метки)

Собствено, сабж.
Ключевое для поиска слово хотябы.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2013, 12:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как ограничить параметр типа шаблона только числовыми типами данных? (C++):

Как ограничить тип данных шаблона класса? - C++
Решил создать два класса: умный массив и его менеджер. Так как массив может хранить любые типы, то его сделал шаблоном: template <class...

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

Как ограничить ввод типа данных? - C++
как сделать так чтобы при использовании оператора cin можно было ограничить тип ввода данных. а именно чтобы при вводе символов в выдавала...

Можно ли использовать параметр шаблона без типа? - C++
#define TV(OBJ) typeof(OBJ), OBJ template<class T, T obj> class A {/*...*/}; int f (int); A<TV(f)> a; Можно ли сделать...

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

Свой тип как параметр шаблона - C++
Есть вопрос по коду: #include <iostream> #include <memory> #include <vector> using namespace std; template<class T> class...

4
Kuzia domovenok
2119 / 1949 / 192
Регистрация: 25.03.2012
Сообщений: 6,755
Записей в блоге: 1
02.08.2013, 12:42 #2
А зачем что-то кому-то ограничивать?
0
loou
1 / 1 / 0
Регистрация: 02.08.2013
Сообщений: 29
02.08.2013, 12:45  [ТС] #3
Чтобы было понятно, что всякую фигню в этот шаблон запихивать не стоит.
0
ForEveR
В астрале
Эксперт С++
7988 / 4747 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
02.08.2013, 12:46 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
loou, SFINAE
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <type_traits>
 
template<typename T>
typename std::enable_if<(std::is_integral<T>::value || std::is_floating_point<T>::value), void>::type
function(const T& value)
{
   std::cout << "Only for integrals and floats" << std::endl;
}
 
template<typename T>
typename std::enable_if<(!std::is_integral<T>::value && !std::is_floating_point<T>::value), void>::type
function(const T& value)
{
   std::cout << "For all others" << std::endl;
}
 
int main()
{
   function(1);
   function(1.0);
   function('c');
   function("hello");
}
http://ideone.com/5XT665

ЗЫ лучше конечно через is_arithmetic, но я про него забыл.
3
I.M.
566 / 549 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
02.08.2013, 12:46 #5
http://en.cppreference.com/w/cpp/types/is_arithmetic
и
http://en.cppreference.com/w/cpp/types/enable_if
1
02.08.2013, 12:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2013, 12:46
Привет! Вот еще темы с ответами:

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

Как можно изменить параметр шаблона (template)? - C++
есть такие классы: class abstract { public: virtual int method() = 0; // Допустим }; class A: public abstract {

Указатель на статический массив как параметр шаблона - C++
Добрый день. Необходимо параметр шаблона сделать указателем и передавать в него указатель на статический массив: template&lt;size_t...

Передать шаблонный класс, как параметр шаблона - C++
нужно не используя stl написать аналог класса list. написал болванку и застрял template&lt;class C&gt; class node{ protected: C *_next; ...


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

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

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