Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить, сколько общих точек http://www.cyberforum.ru/cpp-beginners/thread2172988.html
Определить, сколько общих точек у прямой y=kx+b и окружности x2+y2=R2 Входные данные Даны числа задающие коэффициенты прямой k, b и радиус окружности R. Выходные данные Вывести число общих точек...
C++ Умножение матриц Ребят, помогите реализовать алгоритм умножения матриц. Вот так пытаюсь: int mas; mas = 26; mas = 3; mas = 4; mas = 9; mas = 34; mas = 1; http://www.cyberforum.ru/cpp-beginners/thread2172987.html
Безопасное приведение типа - const_cast C++
Проблемы с функцией strcpy_s. Ошибки: 1)функция не принимает 2 аргументов 2)отсутствуют экземпляры перегруженная функция "strcpy_s", соответствующие списку аргументов #include <iostream>...
C++ Организовать шаблонную функцию для контейнеров
Привет, 1) Нужно организовать шаблонную функцию в которую подается map<int, pair<int ,int>>, и возвращает map<int, pair<int , int >>. Функция должна инкрементировать только данные по ключу map....
C++ Запищал компьютер после сборки программы http://www.cyberforum.ru/cpp-beginners/thread2172953.html
Собрал программу и запустил,а компьютер начал пищать. Что случилось?Делал это задание в школе,конфу компа сказать не могу. Помогла только перезагрузка.Окно программы не закрывалось.В ДЗ эта прога...
C++ Поиск в векторе из структуры Не могу понять как организовать поиск в векторе из структуры. Требуется найти функцией FindMaxRepetitionCount максимальное количество повторов, абсолютно одинаковых значений вектора. Текст задания... подробнее
teatralaik
4 / 4 / 5
Регистрация: 25.08.2016
Сообщений: 40
0

специализация шаблона

12.01.2018, 13:51. Просмотров 256. Ответов 9
Метки (Все метки)

Добрый день!
Хотелось бы сделать шаблонную функцию, у которой будет различная реализация в зависимости от того является ли шаблонный класс - вещественным(т.е. double или float) или нет. Нашел копипаст, который может вернуть bool в зависимости от типа, но не могу понять как реализовать специализацию щаблона, т.к. до этого особо мета-программированием не увлекался. Получается пока что-то в этом роде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
template <typename T>
struct is_floating_point
{
    static const bool value;
};
 
template <typename T>
const bool is_floating_point<T>::value =
    std::numeric_limits<T>::is_specialized &&  // Is fundamental arithmetic type...
    !std::numeric_limits<T>::is_integer;       // ...that is not an integer
 
template <typename T, bool is_float = is_floating_point<T>::value>
std::string NumberToString( const T& Number ){
        return "integer";
};
 
 
template <typename T>
std::string NumberToString<T,true>( const T& Number ){
        return "float";
};
На что компилятор пишет, что частичная специализация функций не доступна. Как быть? Конечно можно использовать тупо if в теле ф-ции, но все таки хотелось бы реализовать статический полиморфизм.

Вернуться к обсуждению:
специализация шаблона
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2018, 13:51
Готовые ответы и решения:

Специализация шаблона
Пытаюсь специализировать шаблон для типа float, но не получается. В чем...

Специализация шаблона
Привет, у меня есть вот такой шаблон дерева: template &lt;typename T = int&gt; ...

специализация шаблона
начал разбираться с шаблонами. если есть структура, и одна функция именно с int...

Специализация шаблона
Здравствуйте! Задача: Создайте шаблонную функцию maxn(), которая принимает...

Явная специализация шаблона
Здравствуйте, подскажите, пожалуйста, почему не выполняется неявное приведение...

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