All'ora 0:43:15 in questo Tech-Talk about D, viene discussa l'implementazione della funzione min. Le preoccupazioni in merito a "stabilità" e "extra shuffling (se i valori sono uguali)" quando vengono utilizzate in alcuni algoritmi sono proposte come una delle ragioni per l'implementazione mostrata.Implementazione corretta del min
Qualcuno può fornire un caso d'uso reale/pratico (o fornire una spiegazione più dettagliata) dove questa specifica implementazione di min è "stabile" (meglio conosciuta) rispetto alla sua altra possibile implementazione? O è solo un altro esempio di alpha-geek che vanno un po 'troppo lontano?
implementazione consigliato:
template <class LHS, class RHS, class Return>
inline Return min(LHS& lhs, RHS& rhs)
{
return (rhs < lhs) ? rhs : lhs;
}
Altro possibile implementazione:
template <class LHS, class RHS, class Return>
inline Return min(LHS& lhs, RHS& rhs)
{
return (lhs < rhs) ? lhs: rhs;
}
Proposta N2199 fornisce implementazioni che si basano su quest'ultima, si ricorda che la proposta non ha avuto successo in questo momento.
Altre proposte importanti riguardo al min/max sono N1840, N2485 e N2551
Non capisco. Non vedo alcun vantaggio per una delle implementazioni che mostri. Ad un certo punto, uno di essi deve essere scelto ... –
Trovo molto divertente come una questione di attenzione molto ristretta e applicabilità limitata sia valutata estremamente bene quando una domanda di massima attenzione e applicabile a quasi tutti viene chiamata "off". argomento'. So che nei dettagli della programmazione può essere estremamente importante. Ma questo è molto strettamente importante e non dovrei mai dipendere dalla stabilità del min per essere corretto nel codice che ho scritto comunque perché è un dettaglio troppo piccolo per dipendere da chi ha ragione. – Omnifarious
@Omnifarious: Penso che tu abbia frainteso il problema, non si tratta di qualcosa di banale, ma piuttosto di un problema che ha perseguitato il C++ per gli ultimi 10 anni, ma a ulteriore scopo, uno degli esperti mondiali nella lingua e alcune persone a un'organizzazione un po 'prestigiosa come Google, ha fatto un commento, e ha fatto sembrare tutto normale e "di fatto" quando la maggior parte del settore acconsentirebbe al contrario, che non si può fare a meno di chiedersi se questo è un altro Kepler o La situazione di Galileo di chiamare il mondo intorno ... molto probabilmente è tutta una sciocchezza, ma perché non discuterne? –