Учитывая следующий фрагмент кода:
struct T {};
std::function<T&(T&)> f = [](T& obj) -> T& { return obj; };
Мне было интересно, можно ли вывести правильный тип возвращаемого лямбда (т.е. T&
) без использования синтаксиса типа возвращаемого типа.
Очевидно, если я удалю -> T&
, тогда произойдет ошибка времени компиляции в том, что выведенный тип будет T
.