Я редко вижу decltype(auto), но когда я это делаю, он меня смущает, потому что при возврате из функции он делает то же самое, что и auto.
auto g() { return expr; }
decltype(auto) g() { return expr; }
В чем разница между этими двумя синтаксисами?