cosa succederà con la porzione sovrapposta di boost quando C ++ 0x diventerà mainstream?
Domanda
cosa accadrà con la porzione di boost sovrapposta quando C ++ 0x diventerà mainstream?
Il boost conterrà ancora tutto ciò a cui era abituato, o adatteranno la libreria per aggiornarla con il nuovo std :: stuff?
Boost avrà sia una normale versione c ++ che una versione c ++ 0x che manterranno?
Soluzione
Si potrebbe sperare che Boost continui a supportare le classi esistenti, per un paio di ragioni.
Innanzitutto, esiste un corpus di codice che utilizza le funzionalità sovrapposte in Boost che deve essere supportato, per qualche tempo.
In secondo luogo, le implementazioni sovrapposte mi consentono di selezionare quale preferirei utilizzare. Potrebbe esserci qualche differenza tra std :: Frob e Boost :: Frob che è importante per il mio progetto, e avere una scelta è buona.
A lungo termine, tuttavia, mi aspetterei una migrazione verso lo standard sia dagli autori delle applicazioni che dai fornitori di strumenti. Questo rende una scelta meno rischiosa andare con std ::.
Altri suggerimenti
Non sono affiliato a Boost e non hanno idea di cosa faranno, ma sembra che Boost rimarrà intatto.
È già stato rilasciato TR1 (VS 2008 feature pack) e Boost non è stato modificato. Poiché molti utenti non hanno ancora adottato Boost o TR1, la mia previsione è che per almeno i prossimi cinque anni le librerie boost e c ++ 0x esisteranno in spazi di nomi diversi e disponibili per gli utenti C ++ 0x e per gli utenti C ++.
I namespace rendono questo un po 'un problema per gli sviluppatori Boost. Non vi è contesa diretta tra le librerie boost e le librerie standard perché esistono in spazi dei nomi separati. Pertanto, le modifiche allo spazio dei nomi std (ad esempio l'aggiunta di std :: tr1) non hanno alcun impatto diretto su Boost.
Nota comunque che se stai importando entrambe le librerie (std e boost) nello spazio dei nomi globale, allora avrai dei problemi.
La seguente citazione dalla documentazione di Boost TR1 fa anche luce sull'implementazione di Boost dei componenti di TR1, suggerendo che la libreria Boost corrispondente verrà mantenuta per il prossimo futuro:
La libreria TR1 fornisce un implementazione del C ++ Technical Rapporto sulle estensioni di libreria standard. Questa libreria non implementa essa stessa i componenti TR1, piuttosto è sottile wrapper che includerà il tuo implementazione TR1 della libreria standard (se ne ha uno), altrimenti lo farà includere gli equivalenti Boost Library, e importarli nello spazio dei nomi std :: tr1.
Intendi tr1?
Boost supporta già tr1. Tutte le classi da boost che sono state adottate in std :: tr1 sono disponibili in questo spazio dei nomi da boost. Consulta la seguente documentazione.
http://www.boost.org/doc /libs/1_37_0/doc/html/boost_tr1.html