Herb Sutter è sia il presidente che un membro molto attivo del comitato di standardizzazione C ++, nonché architetto software su Visual Studio per Microsoft.
È tra gli autori del nuovo modello di memoria C ++ standardizzato per C ++ 0x. Ad esempio, i seguenti documenti:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2669.htm
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007 /n2197.pdf
ha il suo nome sopra. Quindi immagino che l'inclusione su Windows di C ++ 0x sia assicurata finché H. Sutter rimane in Microsoft.
Per quanto riguarda C99 incluso solo in parte in Visual Studio, immagino che sia una questione di priorità.
- Le funzionalità C99 più interessanti sono già presenti in C ++ (inlining, dichiarazione di variabili ovunque, // commenti, ecc.) E probabilmente già utilizzabili in C in Visual Studio (se si fa solo codice C all'interno del compilatore C ++). Vedi la mia risposta qui per una discussione più completa sulle funzionalità C99 in C ++.
- C99 aumenta la divergenza tra C e C ++ aggiungendo funzionalità già esistenti in C ++, ma in modo incompatibile (scusate, ma l' implementazione
booleana complessa in C99 è ridicola, nella migliore delle ipotesi ... Vedi http://david.tribble.com/ text / cdiffs.htm per ulteriori informazioni)
- La comunità C su Windows sembra inesistente o non abbastanza importante da essere riconosciuta
- La comunità C ++ su Windows sembra troppo importante per essere ignorata
- .NET è il modo in cui Microsoft vuole che le persone programmino su Windows. Ciò significa C #, VB.NET, forse C ++ / CLI.
Quindi, dovrei essere Microsoft, perché dovrei implementare funzionalità che poche persone useranno mai quando le stesse funzionalità sono già offerte in più lingue attive della comunità già utilizzate dalla maggior parte delle persone?
Conclusione?
C ++ 0x sarà incluso, come estensione di VS 2008, o nella prossima generazione (generazioni?) Di Visual Studio.
Le funzionalità di C99 non ancora implementate non saranno disponibili nei prossimi anni, a meno che non accada qualcosa di drammatico (un paese pieno di sviluppatori C99 appare dal nulla?)
Modifica 2011-04-14
A quanto pare, il "paese pieno di sviluppatori C99" esiste già: http://blogs.msdn.com/vcblog/archive/2007/11/05/iso-c-standard-update.aspx#6415401
^ _ ^
Tuttavia, l'ultimo commento su: http://blogs.msdn.com/vcblog/archive/2007/11/05/iso-c-standard-update.aspx#6828778 è abbastanza chiaro, immagino.
Modifica 2012-05-03
Herb Sutter ha chiarito che:
- Il nostro obiettivo principale è supportare "la maggior parte di C99 / C11 che è un sottoinsieme di ISO C ++ 98 / C ++ 11".
- Inoltre, per ragioni storiche, forniamo un compilatore C90 che accetta (solo) C90 e non C ++
- Non prevediamo di supportare le funzionalità ISO C che non fanno parte di C90 o ISO C ++.
Il post del blog aggiunge collegamenti e ulteriori spiegazioni per tali decisioni.
Fonte: http://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/