10

La modalità C++ 0x in VC++ 2010 è disattivata? Sto lavorando su un progetto che dovrebbe compilare su compilatori non 0x, e quindi voglio compilare lo standard attuale. (Anche se le nuove funzionalità non vengono utilizzate direttamente, esistono ancora sottigliezze che rendono C++ 0x più premissivo).Disabilitare le funzionalità di C++ 0x in VC 2010?

L'interruttore più vicino che ho trovato era Configuration Properties -> C/C++ -> Language -> Disable Language Extensions ma non è quello.

risposta

13

No, le estensioni della lingua sono in genere aggiunte specifiche del fornitore non standard.

Funzioni C++ 0X: non esiste un modo diretto per disattivare queste funzionalità. Una soluzione alternativa è non usarli. Tuttavia, si noti che ci saranno ancora differenze marcate nelle prestazioni tra le versioni del runtime VC. VC10 implementa la semantica del movimento e la libreria standard (std::string per esempio) utilizza generosamente queste funzioni.

Un ragionevole compromesso secondo me è il ritorno a VS2008. Le versioni VS recenti sono state notoriamente buggate (finora, nella mia esperienza) e non hanno mai funzionato come dovrebbero senza un Service Pack. VS2008 è abbastanza stabile ora, senza nessuna di quelle funzionalità di C++ 0x e dovrebbe adattarsi al tuo conto.

+5

Si può anche tornare a utilizzare il compilatore VS2008 nella VS2010 IDE e nelle impostazioni del progetto. – Andy