cosa succederà con la porzione sovrapposta di boost quando C ++ 0x diventerà mainstream?

StackOverflow https://stackoverflow.com/questions/405175

  •  03-07-2019
  •  | 
  •  

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?

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top