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

Оператор -> C++ - C++

Восстановить пароль Регистрация
 
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
26.02.2014, 19:56     Оператор -> C++ #1
В статье о С++11 наткнулся на следующий код
C++
1
2
3
4
5
template <typename T1, typename T2>
auto add(T1 t1, T2 t2) -> decltype(t1 + t2)
{
   return t1 + t2;
}
что за ->?я знаю, что это способ обращения к переменным или методам класса, на который указывает указатель, а что в этом коде значит?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2014, 19:56     Оператор -> C++
Посмотрите здесь:

C++ Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1
Условный оператор, оператор ввода/вывода; плоскость и принадлежность точки C++
Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. C++
C++ Оператор break как оператор go to next
C++ Почему обращение к методам осуществляется через оператор прямого доступа, а не через оператор указателей->?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
26.02.2014, 20:25     Оператор -> C++ #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
В данном случае это означает выведение возвращаемого типа для auto. Переменная типа auto как и ссылка не может быть не инициализированной, поэтому для неё нужно указать тип.
Оператор -> именно это и производит.
Megabar
22 / 22 / 3
Регистрация: 01.12.2013
Сообщений: 93
26.02.2014, 20:30     Оператор -> C++ #3
alexey31415, это хвостовой возвращаемый тип С++11
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
26.02.2014, 20:32     Оператор -> C++ #4
Простой пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
template <typename T1, typename T2>
auto foo( T1 f1, T2 f2 ) -> int
{
    return f1 + f2;
}
 
int main()
{
    std::cout << foo( 1.01, 1.99 ) << std::endl; // 3
    return 0;
}
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11841 / 6820 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 1
26.02.2014, 20:36     Оператор -> C++ #5
trailing-return-type
mat_for_c
 Аватар для mat_for_c
115 / 110 / 19
Регистрация: 26.04.2013
Сообщений: 585
Завершенные тесты: 2
27.02.2014, 00:16     Оператор -> C++ #6
а в такую ф-ию можно только числа передавать?
Megabar
22 / 22 / 3
Регистрация: 01.12.2013
Сообщений: 93
27.02.2014, 16:55     Оператор -> C++ #7
Цитата Сообщение от mat_for_c Посмотреть сообщение
а в такую ф-ию можно только числа передавать?
необязательно, если у объектов t1 + t2 перегружен оператор +
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2014, 15:39     Оператор -> C++
Еще ссылки по теме:

C++ В Delphi есть оператор cost i of. и т.д. Есть ли в C++ такой же оператор?
C++ Для чего нужен оператор двоеточие, если два двоеточия - это оператор расширения области видимости

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

Или воспользуйтесь поиском по форуму:
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
01.03.2014, 15:39  [ТС]     Оператор -> C++ #8
Добавлено через 1 минуту
castaway, спасибо
Yandex
Объявления
01.03.2014, 15:39     Оператор -> C++
Ответ Создать тему
Опции темы

Текущее время: 01:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru