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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Синхронизация потоков, события, WinAPI http://www.cyberforum.ru/cpp-beginners/thread932466.html
Уважаемые программисты! Решается такая задача: 5 потоков генерируют псевдослучайные числа, главный поток выводит их, при нажатии "enter" все должно быть остановлено и выведена сумма всех этих чисел. Я написала это так: #include <windows.h> #include <stdio.h> #include <process.h> #include <ctime> #define n 5 int i, data; //i-я ячейка массива соответствует i-му потоку HANDLE hThread,...
C++ Напишите программу, которая использует три определяемых пользователем функции (включая main ()) Напишите программу на C++, которая использует три определяемых пользователем функции (включая main ()) и генерирует следующий вывод: Three blind mice Three blind mice See how they run See how they run Где то ошибка в 23 строке. http://www.cyberforum.ru/cpp-beginners/thread932454.html
Чем плохой указатель на void? C++
Здравствуйте! Недавно прочитал статью на хабре http://habrahabr.ru/post/102930/ Сабж - архитектура игрового двигла, а именно менеджер состояний. В нем используется указатель на войд. Вот внизу комментарии есть, что это все сплошной говнокод и указатель такой нельзя юзать в большом проекте. Объясните мне, почему? Что же такого страшного в использование такого указателя не только в данной статье, а...
C++ Получения спектра сигнала
Вообщем есть функция сигнала (допустим синус на синус с разными частотами) и теперь мне надо сделать вывод как на спектроанализаторе - что бы выдал два всплеска на этих частотах. Я понимаю что надо использовать FFT(БПФ) но как именно не совсем понимаю. Входные данные у меня x и y. Как мне их использовать? p.s. Буду рад любой информации.
C++ Не срабатывает вложенные If/else http://www.cyberforum.ru/cpp-beginners/thread932422.html
Написал программу, в программе в цикле while есть большой список if/else который по величине SS суммирует определенные ячейки массива sales. Если мы вводим, например, 2000, то переменная SS получается равна 200 + 0.09 * 2000 = 380, следовательно ячейка массива sales должна увеличиваться на 1, но она почему то не увеличивается. Аналогична ситуация с остальными ячейками, подскажите, в чем ошибка ?...
C++ Удалить повторяющиеся элементы в отсортированнном массиве пример такого массива I={0,1,3,3,3,5,6,8,10,10} Т.е. я так понимаю, нужно сдигать все элементы при повторении влево, и записывать в инт количество таких сдвижек, что бы передать массив в буферный и освободить лишнюю память. Что то туплю, и не могу понять как это "дешевле" сделать...На ум приходит только цикл в цикле.... может подскажите? Добавлено через 16 минут Пройтись один раз по... подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
02.08.2013, 12:46     Как ограничить параметр типа шаблона только числовыми типами данных?
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, но я про него забыл.
 
Текущее время: 22:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru