La mia prospettiva è che se si sta lavorando sul codice della libreria, probabilmente si dovrebbe aspettare. Voglio dire, se vuoi raggruppare una libreria insieme per la distribuzione open-source o l'uso in un pacchetto commerciale multipiattaforma, allora puoi a malapena controllare quale supporto del compilatore per lambdas sarà disponibile e come si comporterà. Fortunatamente, le espressioni lambda, per quanto belle, riguardano principalmente lo zucchero sintattico. Non offrono più funzionalità dei funtori tradizionali, ma lo rendono semplicemente più carino e localizzato (naturalmente, potrei sbagliarmi, la mia conoscenza degli usi di lambda è piuttosto superficiale). Ma, in genere, una biblioteca ha lo scopo di nascondere la bruttezza dell'attuazione. E se hai intenzione di rendere questa libreria utilizzabile su compilatori che non supportano lambda, dovrai comunque fornire le implementazioni portatili alternative. Quindi, a meno che non vi sia un chiaro vantaggio nell'uso di lambda nella libreria (in termini di efficienza (tempo di compilazione o tempo di esecuzione) o nell'esperienza utente (ad esempio se si utilizza lambdas per rendere l'uso della libreria più semplice o più chiaro o più intuitivo)), probabilmente non ne vale la pena.
Tuttavia, per il codice lato utente, è più facile controllare le piattaforme di destinazione e/o compilatori per il software. In tal caso, se tutti i compilatori che si prevede di utilizzare supportano lambdas .. allora impazzisci!
Ora il punto filosofico, gli standard sono lì per le persone a conformarsi a loro.Ciò include naturalmente le persone che fanno i compilatori, ma anche le persone che li usano. Quando le persone iniziano a scrivere belle librerie e/o software che richiede il supporto lambda, le persone che vogliono usarle inizieranno a lamentarsi con i produttori di compilatori per aggiungere il supporto, che a loro volta motiverà le persone a usare lambda .. e così fa la palla rotolare.
Infine, giudicando la quantità di buzz che questo nuovo standard sta sollevando e l'eccitazione che si sta formando in attesa della sua uscita, penso che i programmatori saranno pronti a rendere questo standard "lo standard", e i produttori di compilatori devono seguire l'esempio per rimanere in vita.
fonte
2011-02-11 04:21:59
@Jagannath: la standardizzazione * verrà * completata? C'era il vecchio "C++ 0x è in esadecimale", ma, come ho scherzato in rappresaglia prima, se il 0x è in esadecimale, lo è anche l'implicito 20, così da dare loro fino all'8105. Prima ho detto che scherzo qualche tempo fa. – Steve314
@Steve: dovremmo sapere il prossimo mese dopo la riunione della commissione a Madrid. –