Supponiamo che sto lavorando su un codice scientifico in C ++. In una recente discussione con un collega, è stato affermato che i modelli di espressione potrebbero essere davvero una brutta cosa, rendendo potenzialmente il software compilabile solo su alcune versioni di gcc. Presumibilmente, questo problema ha interessato alcuni codici scientifici, come indicato nei sottotitoli di questa parodia di Downfall . (Questi sono gli unici esempi che conosco, quindi il link.)
Tuttavia, altre persone hanno sostenuto che i modelli di espressione sono utili perché possono produrre miglioramenti delle prestazioni, come in questo articolo nel SIAM Journal of Scientific Computing , evitando la memorizzazione dei risultati intermedi in variabili temporanee.
Non so molto sulla metaprogrammazione dei modelli in C ++, ma so che si tratta di un approccio utilizzato nella differenziazione automatica e nell'aritmetica degli intervalli, ed è così che sono entrato in una discussione sui modelli di espressioni. Dati sia i potenziali vantaggi in termini di prestazioni sia i potenziali svantaggi nella manutenzione (se questa è anche la parola giusta), quando dovrei usare i modelli di espressione C ++ nella scienza computazionale e quando dovrei evitarli?