¿Por qué esta plantilla "min" de cpp-next tiene la culpa?
Estaba leyendo cpp-next donde estomin
template se presenta como un ejemplo de cómo se puede comparar el código detallado de C ++ con el código de python
template <class T, class U>
auto min(T x, U y)->decltype(x < y ? x : y)
{ return x < y ? x : y; }
l principio, esto parece inocente, pero Daveed Vandevoorde hizo este comentari
La plantilla mínima que usa decltype en su especificación de tipo de retorno no funciona: devuelve una referencia (porque el argumento es un valor l) que termina refiriéndose a una variable local en los usos más comunes.
Pensé que no todo el mundo podría tener claro cómo se manifiesta el problema. ¿Puede dar una explicación detallada y posibles soluciones?