Wenn eine Frage gestellt wird und ein Referenztext benötigt wird, sehe ich nie MSDN C ++ - Sprachreferenz wird verwiesen.
Ich habe es durchgeblättert und ich persönlich finde es sehr gut geschrieben.
Gibt es einen bestimmten Grund, warum es nicht so oft verwendet wird wie ein Standard?
Liegt es daran, dass es einige VC ++ - spezifische Funktionen enthält?
Die Antwort ist ziemlich einfach: Die MSDN-Referenz ist nicht autorisierend. Es zeigt Ihnen, wie sich der Compiler von Microsoft verhält, und ja, normalerweise stimmt überein mit dem, was der Standard sagt. Aber wenn jemand fragt, wie die C ++ - Sprache mit einer Situation umgeht, hat nur ein Text eine Berechtigung: den ISO-Standard.
Bei der Beantwortung von Fragen zu C ++ neigen die Leute dazu, auf den Standard zu verweisen. Wenn Sie speziell fragen, wie MSVC es implementiert, wäre MSDN eine vollkommen gültige Quelle. Aber die meisten Fragen betreffen einfach C ++.
Oder anders ausgedrückt: Wenn MSDN einen Tippfehler enthält, ist MSDN falsch. Wenn der ISO-Standard einen Tippfehler enthält, ist die Sprache definiert.
Ich glaube, es liegt daran, dass diejenigen von uns, die auf eine Referenz verweisen, den eigentlichen Standard selbst referenzieren.
MS war ziemlich gut darin, klarzustellen, welche Teile des Dokuments MS-spezifisch sind oder nicht, also stimme ich zu, dass die MS-Referenzen ziemlich gut sind (besonders wenn Sie an MS-Erweiterungen interessiert sind).
Ich verweise generell auf die Standarddokumente, wenn ich Informationen über "Was ist Standard" suche, weil:
Der größte Nachteil ist, dass ich noch keine elektronische Version des C90-Standards habe.
Is it because it contains some VC++ specific features?
Ich denke, das ist der Hauptgrund. Zum Beispiel enthält es oft Informationen zu C ++ / CLI , nicht nur C ++.
VC ++ 2010 Referenz, denke ich, ist vorsichtig bei der Unterscheidung, welcher Teil in C ++ ist und welcher Teil in C ++ / CLI ist. Aber um auf den Standard zu verweisen, ist es natürlich besser, auf den Standard selbst zu verweisen. Auch die VC ++ Dokumentation bezieht sich oft auf den Standard.
Ein interessantes Beispiel: Sehen Sie sich all diese __XXX Keywords an !! (Der C ++ Standard hat keine)
Der C ++ - Standard definiert, wie die C ++ - Sprache funktioniert, die Microsoft C ++ - Sprachreferenz definiert, wie Microsofts Implementierung dieser Sprache funktioniert.
Wenn Sie also wissen möchten, welches Verhalten unabhängig vom Compiler garantiert ist, ist The Standard Ihr Leitfaden. Einige Details und bestimmte Eckfälle sind dort noch implementierungsdefiniert und jede Implementierung kann Erweiterungen der Sprache definieren. Wenn Sie also diese MSCV-spezifischen Eigenschaften verwenden möchten, sollten Sie die Microsoft Language Reference erklären.
Die meisten SO-Fragen zu C ++ on fragen nicht explizit nach einer MSVC-spezifischen Antwort, die für andere Compiler möglicherweise nicht zutrifft. Wenn man sich auf The Standard bezieht, erhält man eine allgemeine, compilerunabhängige Antwort, während MS Language Reference für MSVC nicht viel Gewicht hat.
Tags und Links c c++ standards coding-style msdn