Visual Studio integrovaného vývojového prostředí (IDE) pro upgrade kódu C++
Visual Studio vám pomůže upgradovat starší verzi kódu C++ s možnostmi kompilátoru, upozorněními analýzy kódu a funkcemi editoru, jako jsou rychlé opravy, rychlé informace a vylepšený posuvník. Termín "starší verze kódu" označuje libovolnou z těchto kategorií:
Kód, který byl dříve povolen kompilátorem jazyka C++ společnosti Microsoft (MSVC), ale nikdy nebyl v souladu se standardem C++.
Pokud chcete upgradovat starší MSVC kódu, zapněte možnost
/permissive-kompilátoru. Všechny výskyty nevyhovujících použití jsou v editoru kódu podtržené červenými podtrženími podtržení. Chybové zprávy v okně Seznam chyb obsahují doporučení, jak chybu opravit. Kliknutím na kód chyby přejděte na jeho stránku nápovědy v dokumentaci. Pokud je oprava všech chyb najednou nepraktická, můžete postupně upgradovat nevyhovující kód zapnutím možnosti, opravou některých chyb a opět vypnutím/permissive-této možnosti. Kód se zkompiluje s novými vylepšeními a vy se můžete vrátit a opravit zbývající problémy později. Na této/permissive-stránce najdete příklady nevyhovujícího MSVC kódu.Kód, který byl povolen ve starší verzi standardu C++, ale byl v novější verzi zastaralý nebo odebraný.
Pokud chcete upgradovat na novější jazykový standard, nastavte možnost Standard jazyka C++ na požadovaný standard a opravte případné chyby kompilace, které se vyvolaly. Obecně doporučujeme nastavit standardní jazyk na nebo
/std:c++17/std:c++20. Chyby vyvolané při upgradu na novější standard se netýkaly chyb, ke které došlo při použití/permissive-možnosti .Kód, který odpovídá všem verzím standardu, ale už se nepovažuje za osvědčený postup v moderním jazyce C++.
Pokud chcete identifikovat kód, ve kterém se doporučují změny, spusťte analýzu kódu.
Otevření a převod starší verze projektu
Pokud je váš starší projekt založený na starší verzi Visual Studio, můžete ho otevřít v Visual Studio 2017 nebo Visual Studio 2019. Visual Studio automaticky převede na aktuální schéma projektu s podporou všech nejnovějších funkcí kompilátoru a integrovaného vývojového prostředí.

Další informace najdete v tématu Upgrade projektů C++ ze starších verzí Visual Studio.
Hledání v základu kódu
Upgrade základu kódu často zahrnuje prohledávání více souborů. Pokud chcete v základu kódu vyhledat cokoli, stiskněte Ctrl+T a vyjděte z vyhledávacího pole Přejít na vše.

Pokud chcete zúžit rozsah hledání, zadejte jeden z jedno písmenných filtrů, za ním následuje mezera a pak to, co hledáte.
Seznam chyb
Po nastavení požadovaného standardu jazyka C++ a všech dalších možností kompilátoru (ProjectProperties General ) stiskněte Ctrl+Shift+B a zkompilujte svůj projekt. Můžete očekávat, že se na různých místech v kódu zobrazí některé chyby a upozornění ve formě červených stříek. Chyby se zobrazí také v Seznam chyb. Další informace o konkrétní chybě zobrazíte kliknutím na kód chyby na stránku nápovědy v dokumentaci. Kódy chyb, které začínají na "C", jsou chyby kompilátoru. Kódy, které začínají na MSB, MSBuild chyby, které značí problém s konfigurací projektu.

Indikátor stavu dokumentu
Indikátor stavu dokumentu v dolní části editoru zobrazuje počet chyb a upozornění v aktuálním dokumentu a umožňuje přejít přímo z jednoho upozornění nebo chyby na další.

V mnoha případech najdete další informace o konkrétní chybě v dokumentaci na Visual Studio historii změn a vylepšeních shody.
- Vylepšení shody jazyka C++
- Visual C++ historie změn 2003–2015
- Přehled potenciálních problémů s upgradem
Modernizace kódu pomocí analýzy kódu
Při upgradu doporučujeme ve svém projektu spustit analýzu kódu, aby kód odpovídal minimálně nativním doporučeným pravidlům microsoftu. Tato pravidla jsou kombinací pravidel definovaných Microsoftem a podmnožinou C++ Core Guidelines. Když je budete dodržovat, výrazně snížíte nebo vyloučíte běžné zdroje chyb a zároveň usnadníte čitelnost a údržbu kódu. Code Analysis výchozím nastavení povolená nativní doporučená pravidla společnosti Microsoft. Další pravidla můžete povolit v části ProjectvlastnostiCode Analysis. Kód, který porušuje jedno z pravidel, je označen jako upozornění a je podtržený zelenou podtržení podtrženou podtržení v editoru kódu. Když najedete myší na podmnožině, zobrazí se popis quickinfo, který popisuje problém.

Kliknutím na ikonu filtru ve sloupci Kód zvolte, která upozornění se mají zobrazit.

Chyby a upozornění analýzy kódu se také zobrazují v Seznam chyb stejně jako chyby kompilátoru.

Můžete změnit, která pravidla jsou aktivní, a vytvořit vlastní sady pravidel. Další informace o používání nástroje Code Analysis v tématu Přehled analýzy kódu pro C/C++.
Použití rychlých akcí k modernizaci kódu
Editor kódu poskytuje rychlé akce pro některá běžná doporučení. Když se zobrazí ikona žárovky, můžete na něj kliknout a zobrazit dostupné rychlé akce.
Převod maker na funkce constexpr
Následující obrázek znázorňuje použití makra s názvem AVERAGE , které má výchozí sémantické zabarvení. Obrázek také zobrazuje popis quickinfo, který se zobrazí, když na něj ukazatel myši najede myší:

Vzhledem k tomu, že se používání maker v moderním jazyce C++ nedoporučuje, Visual Studio usnadňuje převod maker na constexpr funkce:
Klikněte pravým tlačítkem na
AVERAGEa zvolte Přejít kAVERAGEKlikněte na ikonudriveru a zvolte Převést makro na constexpr.

Makro je převedeno, jak je znázorněno níže:

A volání metody se teď obarizuje jako volání funkce a Rychlé informace ukazuje odvozovaný AVERAGE typ funkce:

Inicializace proměnných
Neinicializované proměnné mohou obsahovat náhodné hodnoty, které vedou k vážným chybám. Analýza kódu označí tyto instance příznakem a editor poskytuje rychlou akci:

Převod na nezpracovaný řetězcový literál
Nezpracované řetězcové literály jsou méně náchylné k chybám a pohodlnější k psaní než řetězce s vloženými řídicími znaky. Klikněte pravým tlačítkem na řetězec a zvolte Rychlé akce, abyste ho převeďte na nezpracovaný řetězcový literál.

Řetězec se převede na: R"(C:\Users\bjarnes\demo\output.txt)" .