این روشی برای تعریف یک تابع با نوع برگشتی auto یا decltype است .
به صورت معمولی شما نمیتونید تابعی داشته باشید که نوع auto برگردونه .
اگر اینکار رو بدونه Trailing return type اتجام بدید با خطای Syntax مواجه میشید .
بخاطر همین برای تعریف کردن توابعی که نوع برگشتیشون auto یا decltype هست باید از این املا استفاده کنید .
مثل این :
template<typename T>
auto Foo (T& obj) -> T
{
return obj;
}