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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Yami
3 / 1 / 0
Регистрация: 02.11.2013
Сообщений: 21
#1

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

02.11.2013, 16:50. Просмотров 1416. Ответов 22
Метки нет (Все метки)

В настройках ставлю галочку Have g++ follow the C++11 ISO C++ language standard [-std=c++11]

Но все равно не компилится.

C++
1
2
3
4
5
template<typename T1,  typename T2>
auto Max(const T1 &a,  const T2 &b)
{
    return (a>b) ? a : b;
}
Ошибку показывает error: 'Max' function uses 'auto' type specifier without trailing return type|

Добавлено через 3 минуты
Как заставить ее скомпилироваться?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2013, 16:50     Функция возвращает auto
Посмотрите здесь:

Ошибка: функция возвращает auto - C++
Поставил галочку на Have g++ follow the C++11 ISO C++ language standard . Но почему то не компилируется. auto compute() { ...

Функция не возвращает значение - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int ca(int a) { int i,r; r = 0; ...

Функция возвращает объект - C++
Доброго времени суток! Как сделать, чтобы функция возвращала объект, ну или указатель на объект. Использую так: Image-&gt;Picture...

Функция возвращает массив - C++
Как сделать чтобы функция возвращала массив(не исползуя указатели):(. К присмеру: ... char v; // //заполнение массива // ...

Функция возвращает структуру - C++
Всем привет. Есть код взят из книжки &quot;С++ 2008 для начинающих&quot;, ошибок при проверке не выдает , но при отдалке пишет: нет прав на чтение....

Функция не возвращает значение - C++
Функция ничего не возвращает: int Return(int s) { return s; } Передаю в аргумент S целочисленную переменную, но результата в...

Функция не возвращает значение - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;iomanip&gt; #include &quot;stdafx.h&quot; using namespace std; const int max_size = 100; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
02.11.2013, 17:19     Функция возвращает auto #16
Цитата Сообщение от Yami Посмотреть сообщение
Дополнительный аргумент в функции.
Ну.. не аргумент, а параметр шаблона. Аргументов по прежнему 2.
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,013
02.11.2013, 17:19     Функция возвращает auto #17
Цитата Сообщение от Yami Посмотреть сообщение
Дополнительный аргумент в функции. Подумаю на этим
Лучше все-таки подумать над сравнением объектов одного типа.
diagon
Higher
1928 / 1194 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
02.11.2013, 17:21     Функция возвращает auto #18
В gcc 4.8.x с флагом -std=c++1y все компилируется.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
02.11.2013, 17:26     Функция возвращает auto #19
Цитата Сообщение от diagon Посмотреть сообщение
В gcc 4.8.x с флагом -std=c++1y все компилируется.
С какими типами? А что если Max( 10, "42" )?
Jupiter
02.11.2013, 17:26
  #20

Не по теме:

Цитата Сообщение от Yami Посмотреть сообщение
У меня проблемы с английским
если бы только с ним

castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
02.11.2013, 17:26     Функция возвращает auto #21
В принципе, это и с "-std=c++11 -Wall -Wextra -pedantic" компилируется без предупреждений.
C++
1
2
3
4
5
template <typename T1, typename T2>
auto Max( T1 a, T2 b )->decltype((a > b) ? a : b)
{
    return (a > b) ? a : b;
}
diagon
Higher
1928 / 1194 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
02.11.2013, 17:28     Функция возвращает auto #22
Цитата Сообщение от Tulosba Посмотреть сообщение
С какими типами?
C сравнимыми. double и char, const char * и string, например.

Цитата Сообщение от Tulosba Посмотреть сообщение
А что если Max( 10, "42" )?
Ошибка компиляции.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2013, 22:06     Функция возвращает auto
Еще ссылки по теме:

Функция не возвращает false - C++
Вообщем str это строка, которая может содержать в себе знак математической операции, скобки, число (например 1, 5, 556, 33 ..) и т.д. ...

Функция get() не возвращает значение - C++
Есть класс, в котором определен объект типа SDL_Surface*. Пытаюсь передать его в сторонний класс с помощью метода getScreen(), но он по...

Функция не возвращает результат=( - C++
Добрый вечер. у меня такая проблема. мне нужно перегрузить функцию для моего класса: numb numb::operator +(const numb &amp;p)const { ...

Узнать, что возвращает функция - C++
Функция возвращает указатель на неизвестную структуру но как определить что содержится в структуре? это нашел в интернете ...

Узнать что возвращает функция - C++
Вопрос уже задавал раньше, но никто не смог ответить :) В общем есть функция которая возвращает указатель на неизвестно что :) ....


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

Или воспользуйтесь поиском по форуму:
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
02.11.2013, 22:06     Функция возвращает auto #23
По 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;
}
Yandex
Объявления
02.11.2013, 22:06     Функция возвращает auto
Ответ Создать тему
Опции темы

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