Хвостовой тип возврата в C++
Хвостовой тип возврата записывают
после списка параметров в форме
-> decltype(...), когда тип результата
удобнее вывести из выражения с параметрами.
Такой синтаксис часто сочетают с шаблонами,
где возвращаемый тип зависит от типа T.
Запишем combine с хвостовым
decltype(a + b) и выведем сумму:
#include <iostream>
template<typename T>
auto combine(T a, T b) -> decltype(a + b) {
return a + b;
}
int main() {
std::cout << combine(4, 5) << "\n";
return 0;
}
Объявите шаблон diff с хвостовым
типом decltype(a - b). Выведите
разность 10 и 3 для int.