Boost Lambda/Phoenix supporta fuori dalla scatola qualcosa come lambda che restituisce un altro lambda?Boost Lambda/Phoenix - come fare lambda che restituisce un altro lambda?
Per esempio, che può essere usato per fare una sorta di currying:
std::cout << [](int x){return [=](int y){return x+y;};}(1)(2);
Come realizzare scopo simile con Boost Lambda/Phoenix (+ come un bonus - che avremmo avuto un comportamento polimorfico)?
Il problema che ho avuto nel tentativo di rispondere a questa è che 'arg1' viene consumato dal più esterno' bind' - Voglio un 'arg1' Posso passare al' bind interno ', ma il 'bind esterno' lo mangia invece. Se avessi un modo per "sfuggire" all'argomento segnaposto ... – Yakk
@Yakk, potresti provare a usare boost :: bind - AFAIK si differenzia da lambda/phoenix bind (http://www.boost.org/doc/ libs/1_53_0/doc/html/lambda/s08.html # idp111396608). Inoltre, il codice postale del tuo tentativo come risposta - bounty termina domani ... – qble