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

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

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

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

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

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

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
02.08.2013, 12:42     Как ограничить параметр типа шаблона только числовыми типами данных? #2
А зачем что-то кому-то ограничивать?
loou
1 / 1 / 0
Регистрация: 02.08.2013
Сообщений: 29
02.08.2013, 12:45  [ТС]     Как ограничить параметр типа шаблона только числовыми типами данных? #3
Чтобы было понятно, что всякую фигню в этот шаблон запихивать не стоит.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 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, но я про него забыл.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2013, 12:46     Как ограничить параметр типа шаблона только числовыми типами данных?
Еще ссылки по теме:

Результат работы функции как параметр шаблона - C++
В старом с++ билдере такое работало, новый clang ругается. template &lt;class T, const IID* piid = &amp;__uuidof(T)&gt; class CComQIPtr { .. ...

Зачем нужен шаблон как параметр шаблона? - C++
Видел много примеров, но что-то не особо понятно зачем и как это работает.

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

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

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

Кортеж с абстрактным типом как параметр шаблона + smart_ptr - C++
Имеем кортеж (std::tuple) с абстрактным типом, параметризуем этим шаблон класса, экземпляров кортежа нигде не создаём. Создаём экземпляры...


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

Или воспользуйтесь поиском по форуму:
I.M.
564 / 547 / 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
Yandex
Объявления
02.08.2013, 12:46     Как ограничить параметр типа шаблона только числовыми типами данных?
Ответ Создать тему
Опции темы

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