2009-08-14 20 views

risposta

15

phoenix::bind è una funzione che restituisce un modello di espressione che registra che deve chiamare la funzione data. Questi sono progettati per funzionare insieme con phoenix e lambda, rispettivamente. Di conseguenza, contengono molte più cose. Come, il tipo che restituiscono sovraccarica tutti i possibili operatori in modo che la loro rispettiva azione possa essere registrata ed eseguita successivamente.

boost::bind è "solo" un raccoglitore. Legherà la funzione e restituirà un tipo con sovraccarico la funzione chiamata operatore, e non molto altro.

+2

Vale la pena notare che in [Phoenix 3.0] (http://www.boost.org/doc/libs/1_47_0/libs/phoenix/doc/html/index.html) (rilasciato in boost 1.47), 'phoenix :: bind' è [compatibile] (http://www.boost.org/doc/libs/1_47_0/libs/phoenix/doc/html/phoenix/modules/bind/compatibility_with_boost_bind.html) con 'boost :: bind' . Tenendo presente la risposta di litb qui, questo significa che potresti usare 'phoenix :: bind' in posti in cui hai usato in precedenza' boost :: bind', ma non penso che funzioni in senso inverso (non puoi usare 'boost :: bind' all'interno di un lambda e si aspetta che funzioni come' phoenix :: bind'). –

Problemi correlati