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

Функция возвращает auto - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Преобразовать последовательность http://www.cyberforum.ru/cpp-beginners/thread995552.html
Даны натуральное число n, символы s1,...,sn. Преобразовать последовательность s1,...,sn, заменив в ней все восклицательные знаки точками.
C++ Передача аргументов в функцию Хочу размерность массива задать в отдельной функции, но не получается разобраться с передачей аргументов. Поясните, а то самому пока не получается разобраться. #include <iostream> #include <time.h>... http://www.cyberforum.ru/cpp-beginners/thread995526.html
Проектирование класса C++
Доброго времени суток. Имеется класс Player, в нём — приватный объект типа Settings. Как наиболее лаконично обратиться извне к публичным методам Settings? class Settings { private: // Около 100...
C++ Задержка времени
Здравствуйте! Мне необходимо сделать задержку времени, чтобы перемещение элемента было помедленнее. Пробовала использовать Sleep(), но эта функция вешает всё приложение. Как можно по-другому...
C++ С++ работа с текстовыми файлами http://www.cyberforum.ru/cpp-beginners/thread995448.html
Здравствуйте. Я только начинаю знакомиться с средой C++, учусь работать с файлами, самое базовое типа ввода и вывода данных. Так вот, может кто-нибудь подсказать\навести как создать такую программку,...
C++ Поиск Здравствуйте! Возникла проблема при поиске слова(поиск интерполяционный). Проблема заключается в том что нельзя вычитать, умножать объекты string(и понятное дело). Вот код: #include <iostream>... подробнее

Показать сообщение отдельно
DiffEreD
1430 / 767 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
02.11.2013, 22:06
По decltype есть такой документ: C++ auto and decltype Explained (тернарный оператор - 8 страница).
С ним есть некий нюанс:
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
#include <iostream>
 
template<typename T, typename U>
auto max(T&& t, U&& u) -> decltype(t > u ? t : u)
{
   return t > u ? t : u;
}
 
int main()
{
   int x = 10;
   int y = 20;
   double z = 30.5;
 
   //(присвоить большей переменной значение)
   max(x, y) = 110; //Ok
   max(2.1, z) = 120; //Ok
   //max(x, z) = 110; //Error
   //max(x, 5.2) = 110; //Error
 
   std::cout << "x = " << x << std::endl;
   std::cout << "y = " << y << std::endl;
   std::cout << "z = " << z << std::endl;
 
   return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru