En el momento 0:43:15 en este Tech-Talk about D, se describe la implementación de la función min. Las preocupaciones sobre "estabilidad" y "mezcla adicional (si los valores son iguales)" cuando se usa en algún algoritmo (s) se propone como una de las razones para la implementación mostrada.Implementación correcta de min
¿Alguien puede proporcionar un caso de uso real/práctico (o proporcionar una explicación más detallada) donde esta implementación específica de min es "estable" (mejor) en comparación con su otra posible implementación? ¿O es solo otro ejemplo de alfa-geeks yendo demasiado lejos?
aplicación recomendada:
template <class LHS, class RHS, class Return>
inline Return min(LHS& lhs, RHS& rhs)
{
return (rhs < lhs) ? rhs : lhs;
}
Otra posible aplicación:
template <class LHS, class RHS, class Return>
inline Return min(LHS& lhs, RHS& rhs)
{
return (lhs < rhs) ? lhs: rhs;
}
Propuesta N2199 proporciona implementaciones que se basan en este último, tenga en cuenta que la propuesta no tuvo éxito en este momento.
Otras propuestas relacionadas con mínimo/máximo son N1840, N2485 y N2551
No lo entiendo. No veo ninguna ventaja para una de las implementaciones que muestra. En algún momento, uno de ellos debe ser elegido ... –
Me resulta muy entretenido cómo una pregunta de enfoque muy limitado y aplicabilidad limitada se califica extremadamente alta cuando se trata de una cuestión de enfoque muy amplio y aplicable a casi todo el mundo 'off- tema'. Sé que en la programación los detalles pueden ser extremadamente importantes. Pero esta es muy estrechamente importante y nunca dependería de la estabilidad de min para ser correcto en el código que escribí de todos modos porque es un detalle demasiado pequeño para depender de que alguien acierte. – Omnifarious
@Omnifarious: Creo que ha entendido mal el tema, no se trata de algo trivial, sino más bien de un problema que ha estado persiguiendo a C++ durante los últimos 10 años, pero para seguir adelante, uno de los expertos mundiales en el lenguaje y algunas personas en una organización un poco prestigiosa como Google, han hecho un comentario, y lo han hecho sonar tan normal y "de hecho" cuando la mayoría en la industria estaría de acuerdo con lo contrario, que uno no puede evitar preguntarse si este es otro Kepler o La situación de Galileo de llamar al mundo ... lo más probable es que todo sea una tontería, pero ¿por qué no discutirlo? –