Secondo N4295 C++ 17 mi permetterà di calcolare la somma di un numero imprecisato di argomenti così:espressioni pieghevole in C++ 17 - Usecase per gli operatori di confronto
template<typename ... T>
int sum(T...t)
{
return (... + t);
}
Il documento afferma inoltre che potrebbe usare operatori come == o> invece di +. Qualcuno può venire con un esempio ragionevole di quando vorrei usare == o> in un simile costrutto?
(mi rendo conto che le persone possono definire == e> per fare cose strane alle classi strane, ma sicuramente che viola le buone pratiche. La scrittura a > b > c > d
è quasi mai una buona idea, vero?)
Se si utilizza una piega binaria con qualche elemento di partenza speciale, si potrebbe dire '(apply_op() == ... == t)' per rendere l'operatore 'apply_op'' == 'fare il diritto cosa? –
Da quello che ricordo, le pieghe unarie sono state rimosse per +. Dovresti scrivere '(T {} + ... + t)' o '(t + ... + T {})' (o qualunque valore abbia senso per te). – chris
@chris Sono stati rimossi solo quando il pacchetto parametri è vuoto. Finché c'è almeno un elemento in '... t' la funzione sopra funziona ancora come previsto. – Morwenn