Come metaprogrammazione del C++ è funzionale: esiste un modo per fare qualcosa di paragonabile a qualsiasi costrutto del linguaggio let o where di un linguaggio di programmazione funzionale (ad esempio Haskell)?C++/Boost MPL: codice di struttura similarmente Haskell's let, dove,
Sto usando Boost :: MPL ma vorrei avere più struttura per metafunzioni più lunghe. La suddivisione in più funzioni va bene, ma preferirei lasciare/dove in alcuni casi.
Arriva un punto in cui si cerca di calzascarpe più modello di magia in C++ smette di dare rendimenti utili, soprattutto quando si tratta di compatibilità futura e manutenzione. Hai considerato di scrivere più codice in un linguaggio funzionale veloce che può generare librerie richiamabili da C/C++? (Mi viene in mente OCaml) – Rook
No, non l'ho considerato. Sto usando la meta-programmazione perché ho bisogno di fare qualcosa in fase di compilazione, non perché voglio scrivere codice funzionale. I miei pezzi di codice non sono così complessi. Ho solo pensato che se avessi usato la stessa funzione per tre volte in una metafunzione a 30 linee sarebbe bello usare una struttura. – user1034081
In C++ 11, è possibile eseguire molte elaborazioni in fase di compilazione con 'constexpr' invece di modelli. – leftaroundabout