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

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

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

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

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

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

Передать шаблонный класс, как параметр шаблона C++
Как ограничить доступ к внешним устройствам и не только C++
Как ограничить тип данных шаблона класса? C++
Зачем нужен шаблон как параметр шаблона? C++
Считывание типа данных для шаблона C++
C++ Кортеж с абстрактным типом как параметр шаблона + smart_ptr
Указатель на статический массив как параметр шаблона C++
C++ Передача функции как параметр шаблона
Как можно изменить параметр шаблона (template)? C++
Как ограничить ввод типа данных? C++
C++ Свой тип как параметр шаблона
Результат работы функции как параметр шаблона C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
02.08.2013, 12:42     Как ограничить параметр типа шаблона только числовыми типами данных? #2
А зачем что-то кому-то ограничивать?
loou
1 / 1 / 0
Регистрация: 02.08.2013
Сообщений: 29
02.08.2013, 12:45  [ТС]     Как ограничить параметр типа шаблона только числовыми типами данных? #3
Чтобы было понятно, что всякую фигню в этот шаблон запихивать не стоит.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 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, но я про него забыл.
I.M.
 Аватар для 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     Как ограничить параметр типа шаблона только числовыми типами данных?
Ответ Создать тему
Опции темы

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