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

Определить наибольшее из 3 чисел для данных разных типов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создать классы для форм (круг и треугольник) http://www.cyberforum.ru/cpp-beginners/thread1221382.html
помогите кто сможет Требуется создать классы для форм (круг и треугольник), причём каждый из классов должен реализовать функции Area() и Print(). Создайте необходимую иерархию наследования
C++ Класс Circle (круг), который вычисляет площадь и периметр по радиусу Напишите класс Circle (круг), который вычисляет площадь и периметр по радиусу, который передаётся классу как параметр во время создания объекта. Число Пи должно содержаться в константном закрытом компоненте, к которому нельзя обратиться извне класса http://www.cyberforum.ru/cpp-beginners/thread1221380.html
C++ Класс Rectangle (прямоугольник)
друзья , у меня экзамен . а я не бум бум в c++ . помогите кто сможет Создать класс Rectangle (прямоугольник). Класс имеет атрибуты length и width. Он имеет функции, которые вычисляют площадь и периметр прямоугольника. Он также имеет функции записи и чтения length и width.
Классы. База данных с динамическим числом столбцов C++
Добрый день, вопрос такой: У меня база данных, построенная на двусвязном списке. Там в классе я закладывал 5 полей. Следовательно, моя база имеет 5 уникальных столбцов. Можно ли сделать количество столбцов динамическим?
C++ Сформировать список из 10 работников, используя динамическую структуру данных двусвязный список http://www.cyberforum.ru/cpp-beginners/thread1221313.html
спасайте Сформировать список из 10 работников, используя динамическую структуру данных двусвязный список. Информация о работнике включает фамилию, должность, год рождения (с++)
C++ Написать программу построчного вывода целочисленной матрицы 3*5 с выравниванием по левой границе люди плиз помогите написать прогу(с++). Написать программу построчного вывода целочисленной матрицы 3*5 с выравниванием по левой границе. Ширина поля для каждого числа равна 7 подробнее

Показать сообщение отдельно
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
02.07.2014, 18:48     Определить наибольшее из 3 чисел для данных разных типов
Интересно, а почему так не определяется правильный возвращаемый тип?
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
25
26
27
#include <iostream>
#include <typeinfo>
 
template <typename T1, typename T2>
auto max_impl(T1&& t1, T2&& t2) -> decltype(t1 > t2 ? t1 : t2)
{
   return t1 > t2 ? t1 : t2;
}
 
template <typename T1, typename T2, typename T3>
auto max(T1&& t1, T2&& t2, T3&& t3) ->
decltype((t1 > max_impl(t2, t3)) ? t1 : t2 > t3 ? t2 : t3)
{
   return (t1 > max_impl(std::forward<T2>(t2), std::forward<T3>(t3))) ? t1 :
            max_impl(std::forward<T2>(t2), std::forward<T3>(t3));
}
 
int main()
{
   std::cout << max(0.03, 3, 50555555L) << "\n";
   std::cout << max(50555555L, 3, 0.03) << "\n";
 
   std::cout << typeid(max(0.03, 3, 50555555L)).name() << "\n";
   std::cout << typeid(max(50555555L, 3, 0.03)).name() << "\n";
 
   return 0;
}
Добавлено через 6 минут
поправочка
C++
1
2
decltype((t1 > max_impl(std::forward<T2>(t2), std::forward<T3>(t3))) ? t1 :
          max_impl(std::forward<T2>(t2), std::forward<T3>(t3)))
 
Текущее время: 17:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru