Informationen
Das angeforderte Thema wird unten angezeigt. Es ist jedoch nicht in dieser Bibliothek vorhanden.

Neues über Visual C++ in Visual Studio 2013

In diesem Dokument werden die neuen und erweiterten Funktionen vorgestellt, die in Visual C++ in Visual Studio 2013 zur Verfügung stehen.

Informationen über weitere Ergänzungen in Visual Studio 2013 finden Sie unter Neues in Visual Studio 2013.

Hh409293.collapse_all(de-de,VS.120).gifCompiler

  • Unterstützte ISO C++11-Sprachfunktionen:

  • Unterstützte ISO C99-Sprachfunktionen:

    • _Bool

    • Verbundliterale

    • Festgelegte Initialisierer

    • Mischen von Deklarationen mit Code

  • Zeichenfolgenliteralkonvertierung an änderbaren Werten kann als unzulässig erklärt werden, indem die neue Compileroption /Zc:strictStrings verwendet wird. Seit C++98 ist die Konvertierung aus Zeichenfolgenliteralen in char * (und von breiten Zeichenfolgenliteralen in wchar_t *) veraltet. In C++11 wurde die Konvertierung vollständig entfernt. Obwohl der Compiler dem Standard strikt entsprechen könnte, wird stattdessen die Option /Zc:strictStrings bereitgestellt, mit der die Konvertierung gesteuert werden kann. Standardmäßig ist die Option deaktiviert. Beachten Sie, dass bei Verwendung dieser Option im Debugmodus STL nicht kompiliert.

  • rvalue/lvalue-Verweisumwandlungen. Mit rvalu-Verweisen kann C++11 eindeutig zwischen lvalues und rvalues unterscheiden. Zuvor war das mit dem Visual C++-Compiler in bestimmten Umwandlungsszenarien nicht möglich. Die neue Compileroption /Zc:rvalueCast wurde hinzugefügt, damit der Compiler mit dem C++-Sprachen-Arbeitspapier(siehe Abschnitt 5.4], [expr.cast /1) kompatibel ist.

    Wenn diese Option nicht angegeben wird, entspricht das Standardverhalten dem von Visual Studio 2012.

Hinweis Hinweis

* Für Standardwerfunktionen, wird die Verwendung von =default, um memberweise Bewegungskonstruktoren und Bewegungszuweisungsoperatoren anzufordern, nicht unterstützt.

Hh409293.collapse_all(de-de,VS.120).gifC99-Bibliotheken

Deklarationen und Implementierungen werden für fehlende Funktionen in diesen Header hinzugefügt: math.h, ctype.h, wctype.h, stdio.h, stdlib.h und wchar.h. Außerdem wurden die neuen Header complex.h, stdbool.h, fenv.h und inttypes.h sowie Implementierungen für alle Funktionen hinzugefügt, die darin deklariert werden. Es gibt neue C++-Wrapperheader (ccomplex, cfenv, cinttypes, ctgmath) und mehrere andere wurden aktualisiert (ccomplex, cctype, clocale, cmath, cstdint, cstdio, cstring, cwchar und cwctype). Weitere Informationen finden Sie im Abschnitt zur Unterstützung der C99-Bibliothek in Visual Studio 2013.

Hh409293.collapse_all(de-de,VS.120).gifStandard Template Library

  • Unterstützung für explizite Konvertierungsoperatoren, Initialisierungslisten, bewertete Enumerationen und variadic Vorlagen von C++11.

  • Alle Container unterstützen jetzt die differenzierten C++11-Elementanforderungen.

  • Unterstützung für diese C++14-Funktionen:

    • Transparente "Operatorfunktionselemente" less<>, greater<>, plus<>, multiplies<> usw.

    • make_unique<T>(args...) und make_unique<T[]>(n)

    • cbegin()/cend(), rbegin()/rend() und crbegin()/crend()-nicht-Memberfunktionen.

  • <atomic> weist zahlreiche Leistungserweiterungen auf.

  • <type_traits> weist wichtige Stabilisierungs- und Codekorrekturen auf.

Hh409293.collapse_all(de-de,VS.120).gifDie Lauffähigkeit der Anwendung beeinträchtigende Änderungen

Diese verbesserte Unterstützung für C++-ISO-Standards erfordert möglicherweise Änderungen am vorhandenen Code, sodass er C++11 entspricht und ordnungsgemäß in Visual C++ in Visual Studio 2013 kompiliert wird. Weitere Informationen finden Sie unter Wichtige Änderungen in Visual C++.

Weitere Informationen zur neuen C++11/14-Programmiersprache und den STL-Funktionen finden Sie unter Unterstützung für C++11-Funktionen (Modern C++) und C++11/14 STL, Funktionen, Fixes und Änderungen in Visual Studio 2013.

  • C++-REST-SDK wird hinzugefügt. Es verfügt über eine moderne C++-Implementierung von REST-Diensten. Weitere Informationen finden Sie unter C++ REST SDK.

  • C++-AMP-Texturunterstützung wurde verbessert. Sie umfasst jetzt Unterstützung für Mipmaps und neue Samplingsmodi.

  • PPL-Aufgaben unterstützen mehrere Planungstechnologien und asynchrones Debuggen. Neue APIs ermöglichen die Erstellung von PPL-Aufgaben für Normalbefunde und Ausnahmebedingungen.

  • Automatische Vektorisierung erkennt und optimiert jetzt mehrere C++-Muster, damit der Code schneller ausgeführt wird.

  • Verbesserungen bei der ARM-Plattform- und Atom-Mikroarchitektur-Codequalität.

  • __vectorcall-Aufrufkonvention wird hinzugefügt. Übergabe von Vektortypargumenten mithilfe der __vectorcall-Aufrufkonvention, um Vektorregister zu verwenden.

  • Neue Linkeroptionen. Die Schalter /Gw (Compiler) und /Gy (Assembler) aktivieren Linkeroptimierungen, um schlankere Binärdateien zu erzeugen.

  • C++AMP gab Arbeitsspeicherunterstützung frei, um das Kopieren von Daten zwischen CPU und GPU zu reduzieren oder auszuschließen.

  • Verbesserungen bei der profilgesteuerten Optimierung (PGO):

    • Leistungsverbesserungen durch eine Reduzierung der Arbeitsseiten von Apps, die durch die Verwendung von PGO optimiert werden.

    • Neue PGO für Windows Store-App-Entwicklung.

  • Unterstützung für geschachtelte Typen in Wertstrukturen. Sie können jetzt Werttypen definieren, indem Sie Felder verwenden, die NULL sein können – z. B. IBox<int>^ anstelle von int. Dies bedeutet, dass die Felder entweder einen Wert haben oder gleich nullptr sind.

  • Umfangreichere Ausnahmeinformationen. C++/CX unterstützt das neue Windows-Fehlermodell, das die Erfassung und die Weitergabe von umfangreichen Ausnahmeinformationen über der Anwendungsbinärdateischnittstelle (ABI) aktiviert. Dies schließt auch Aufruflisten und benutzerdefinierte Meldungs- ein.

  • Object::ToString () ist jetzt virtuell. ToString kann jetzt in benutzerdefinierten Windows-Runtime-Referenz-Typen überschrieben werden.

  • Unterstützung für veraltete APIs. Öffentliche Windows-Runtime-APIs können jetzt als veraltet markiert und ihnen kann eine benutzerdefinierte Meldung zugewiesen werden, die als Buildwarnung angezeigt werden und Migrationsanleitungen bereitstellen kann.

  • Debugger-Verbesserungen. Unterstützung für systemeigenes/JavaScript-Interop-Debuggen, Windows Runtime-Ausnahmediagnose und asynchrones Debuggen von Code (Windows Runtime und PPL).

Hinweis Hinweis

Zusätzlich zu den C++-spezifischen Funktionen und -Erweiterungen, die in diesem Abschnitt beschrieben werden, können Sie mithilfe anderer Erweiterungen in Visual Studio bessere Windows Store-Apps schreiben. Ausführliche Informationen zu diesen Funktionen finden Sie im Windows 8.1-Funktions-Handbuch. Weitere Informationen zu neuen Appvorlagen finden Sie unter C#-, VB- und C++-Projektvorlagen für Windows Store-Apps. Eine Liste neuer Plattformfunktionen, finden Sie unter Windows 8.1 Preview: Neue APIs und Funktionen.

  • Debugger-Verbesserungen. Unterstützung für asynchrones Debuggen und Nur mein Code-Debuggen.

  • Codeanalyse-Kategorien. Sie können nun die kategorisierte Ausgabe des Code-Analyzer anzeigen, anhand derer Sie Codefehler finden und beheben können.

  • XAML-Diagnose. Sie können nun die UI-Reaktionsfähigkeit sowie Akkuverwendungsprobleme im XAML-Code diagnostizieren.

  • Verbesserungen beim Grafik- und GPU-Debugging.

    • Remote-Erfassung und -Wiedergabe auf realen Geräten.

    • Simultanes C++-AMP- und -CPU-Debugging.

    • Verbesserte C++-AMP-Laufzeitdiagnose.

    • HLSL-Compute-Shader-Ablaufverfolgungsdebugging.

  • Unterstützung der Pipeline für Bildinhalte für vorab multipliziertes Alpha-DDS-Format.

  • Bild-Editor verwendet intern vorab multipliziertes Alpha zum Rendern und vermeidet somit Artefakte wie dunkle Halos zu rendern.

  • Bild- und Modell-Editoren. Benutzerdefinierte Filtererstellung wird jetzt in Shader Designer im Bild- und Modell-Editor unterstützt.

Die Visual Studio-IDE bietet wesentliche Verbesserungen, die eine höhere Produktivität bei der Codierung in C++ ermöglichen.

  • Verbesserte Code-Formatierung. Sie können mehr Formatierungseinstellungen auf den C++-Code anwenden. Wenn Sie diese Einstellungen verwenden, können Sie die Platzierung neuer Zeilen von geschweiften Klammern und Schlüsselwörtern, Einzügen, Abständen und Zeilenumbrüchen steuern. Code wird automatisch formatiert, wenn Sie Anweisungen und Blöcke abschließen und wenn Sie Code in eine Datei einfügen. Um Formatierungseinstellungen in der Visual Studio-Menüleiste zu ändern, wählen Sie Tools, Optionen, erweitern Sie die Knoten Text-Editor, C/C++ und Formatierung, und nehmen Sie dann die Änderungen vor. Sie können diese Optionen auch über das Feld Schnellstart aufrufen.

  • Klammerabschluss. C++-Code vervollständigt die Schlusszeichen, die diesen Öffnungszeichen entsprechen, jetzt automatisch:

    • { (geschweifte Klammer)

    • [ (eckige Klammer)

    • ( (runde Klammer)

    • ' (einfaches Anführungszeichen)

    • " (doppeltes Anführungszeichen)

  • Zusätzliche C++-Funktionen für automatische Vervollständigung.

    • Fügt Semikolon für Klassentypen hinzu.

    • Vervollständigt Klammern für unformatierte Zeichenfolgenliterale.

    • Vervollständigt mehrzeilige Kommentare (/* */)

  • Alle Verweise suchen löst jetzt Verweise auf und filtert sie im Hintergrund, nachdem die Liste der Textabgleichungen anzeigt wurde. Um die Verweisauflösung zu deaktivieren, wählen Sie in der Visual Studio-Menüleiste Tools, Optionen, erweitern Sie die Knoten Text-Editor, C/C++ und Erweitert, und ändern Sie Einstellung Auflösen deaktivieren unter Verweise.

Um die Einstellungen für den Klammerabschluss zu ändern, wählen Sie in der Visual Studio-Menüleiste Tools, Optionen, erweitern Sie die Knoten Text-Editor, C/C++ und Allgemein, und nehmen Sie dann die Änderungen vor. Sie können auch die Einstellungen für alle Visual Studio-Sprachen ändern, indem Sie die Knoten Text-Editor, Alle Sprachen und Allgemein erweitern.

Um bestimmte C++-Einstellungen zu ändern, wählen Sie in der Menüleiste Tools, Optionen, erweitern Sie die Knoten Text-Editor, C/C++ und Erweitert, und nehmen Sie dann die Änderungen vor.

  • Kontextbasierte Memberlistenfilterung. Member, auf die nicht zugegriffen werden kann, werden aus den IntelliSense-Memberlisten herausgefiltert. Beispielsweise werden private Member nicht in der Memberliste angezeigt, es sei denn, Sie ändern den Code, der den Typ implementiert. Während die Memberliste geöffnet ist, können Sie STRG+J drücken, um eine Filterungsebene zu entfernen (gilt nur für das aktuelle Memberlistenfenster). Sie können STRG+J erneut drücken, um die Textfilterung zu entfernen und jeden Member anzuzeigen.

  • Parameter-Hilfe-Bildlauf. Die angezeigte Funktionssignatur in der QuickInfo der Parameter Hilfe ändert sich jetzt je nach Anzahl der Parameter, die Sie wirklich eingegeben haben, anstatt nur eine beliebige Signatur anzuzeigen, die nicht auf Grundlage des aktuellen Kontextes aktualisiert wird. Parameterhilfe funktioniert auch ordnungsgemäß, wenn sie in geschachtelten Funktionen angezeigt wird.

  • Header-/Codedatei umschalten. Sie können nun zwischen einem Header und der zugehörigen Codedatei umschalten, indem Sie einen Befehl im Kontextmenü oder eine Tastenkombination verwenden.

  • In der Größe veränderbares C++-Projekteigenschaften-Fenster.

  • Automatisches Generieren des Ereignishandler-Codes in C++/CX und in C++/CLI. Wenn Sie Code eingeben, um einen Ereignishandler in einer C++/CX- oder C++/CLI-Codedatei hinzuzufügen, kann der Editor die Delegatinstanz und die Ereignishandlerdefinition automatisch generieren. Ein QuickInfo-Fenster wird angezeigt, wenn Ereignishandlercode automatisch generiert werden kann.

  • DPI-Erweiterung. Die DPI-Einstellung für Anwendungsmanifestdateien unterstützt jetzt die Einstellung "Hohe DPI-Werte pro Monitor".

  • Schnellere Konfigurationsumschaltung. Für große Anwendungen werden Konfigurationen, insbesondere nachfolgende Umschaltvorgänge, viel schneller ausgeführt.

  • Effizienz der Buildzeit.

    • Schnellere Builds. Zahlreiche Optimierungen und Multikernauslastung machen Builds schneller, insbesondere für umfangreiche Projekte. Inkrementelle Builds für C++-Anwendungen, die Verweise auf C++ WinMD aufweisen, sind ebenfalls viel schneller.

  • Informationen zu anderen Hinzufügungen und Verbesserungen der IDE finden Sie unter Neues in Visual Studio 2013 und in den anderen Artikeln, auf die verwiesen wird.

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

Anzeigen:
© 2014 Microsoft