1 / 1 / 0
Регистрация: 02.08.2013
Сообщений: 32
1

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

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

Собствено, сабж.
Ключевое для поиска слово хотябы.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.08.2013, 12:41
Ответы с готовыми решениями:

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

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

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

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

4
4004 / 3266 / 914
Регистрация: 25.03.2012
Сообщений: 12,199
Записей в блоге: 1
02.08.2013, 12:42 2
А зачем что-то кому-то ограничивать?
0
1 / 1 / 0
Регистрация: 02.08.2013
Сообщений: 32
02.08.2013, 12:45  [ТС] 3
Чтобы было понятно, что всякую фигню в этот шаблон запихивать не стоит.
0
В астрале
Эксперт С++
8048 / 4805 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
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
574 / 557 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
02.08.2013, 12:46 5
http://en.cppreference.com/w/c... arithmetic
и
http://en.cppreference.com/w/cpp/types/enable_if
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.08.2013, 12:46
Помогаю со студенческими работами здесь

Параметр типа строка в ксд ограничить только числами
неактуально. удалите пожалуйста.

Работа с числовыми типами данных
Уважаемые знатоки c#, очень нужна ваша помощь. Есть ли какой-то тип переменных который может...

Операции с разными числовыми типами. Если на вход подаются большие числа (типа 1000), то выводятся нули
Решил одну задачу, на вход подаются 3 числа (через пробел) выводятся 2 с плавающей точкой. Все...

Ограничить параметр типа Type
Здравствуйте, я новичок в шарпе. Возможно ли при создании функции вида public function T...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru