al momento sono davvero interessato ai modelli di espressione e voglio codificare una libreria per scrivere e differenziare le funzioni matematiche con una sintassi in stile lambda. Al momento, sono in grado di scrivere (_x * _x)(2);
e ottenere il risultato corretto 4. Ma mi piacerebbe davvero fare qualcosa come MathFunction f = _x * _x; f(2);
, ma non ho alcuna idea su come affrontare i modelli di espressioni ricorsive sul lato destro . È possibile raggiungere questo obiettivo senza utilizzare la parola chiave 'auto' invece di MathFunction o dover rendere l'operatore() virtuale?Memorizzazione dei funtori modello di espressione
Grazie per il vostro aiuto!
Grazie per questa risposta e i collegamenti! Ho già scansionato la documentazione di Boost.Lambda per una soluzione al mio problema, ma non ho trovato una riga in cui quelle funzioni lambda sono effettivamente "memorizzate", vengono sempre utilizzate in linea. Al momento, utilizzo l'approccio "Modelli C++ - La guida definitiva" per i modelli di espressione. – fhenneke
Eccezione non scoperta, stavo suggerendo di guardare il codice sorgente. Hai già guardato? – batbrat