Nástroje ide sady Visual Studio 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ší kód" odkazuje na některou z těchto kategorií:
Kód, který byl dříve povolen kompilátorem jazyka Microsoft C++ (MSVC), ale nikdy neodpovídá standardu C++.
Pokud chcete upgradovat starší nevyhovující kód MSVC, zapněte možnost kompilátoru
/permissive-
. Všechny instance nevyhovujících použití jsou v editoru kódu podtržené červenou vlnovkou. Chybové zprávy v okně Seznam chyb obsahují doporučení, jak chybu opravit. Kliknutím na kód chyby přejděte na stránku nápovědy v dokumentaci. Pokud jsou všechny chyby najednou nepraktické, můžete upgradovat nevyhovující kód ve fázích zapnutím/permissive-
možnosti, opravou některých chyb a opětovným vypnutím možnosti. Kód se zkompiluje s novými vylepšeními a můžete se vrátit a opravit zbývající problémy později. Příklady nevyhovujícího kódu MSVC najdete na/permissive-
stránce.Kód, který byl povolen ve starší verzi standardu C++, ale byl zastaralý nebo odebrán v novější verzi.
Pokud chcete upgradovat na novější jazykovou normu, nastavte možnost Standard jazyka C++ na požadovaný standard a opravte případné chyby kompilace, které jsou vyvolány. Obecně doporučujeme nastavit jazykový standard na
/std:c++17
nebo/std:c++20
. Chyby vyvolané při upgradu na novější standard nesouvisí s chybami vyvolaovými při použití/permissive-
této možnosti.Kód, který odpovídá všem verzím standardu, ale v moderním jazyce C++ se už nepovažuje za osvědčený postup.
Pokud chcete identifikovat kód, ve kterém se doporučuje 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 sady Visual Studio, můžete ho otevřít v sadě Visual Studio 2017 nebo Visual Studio 2019. Visual Studio ho 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í (IDE).
Další informace naleznete v tématu Upgrade projektů C++ ze starších verzí sady Visual Studio.
Prohledání základu kódu
Upgrade základu kódu často zahrnuje vyhledávání prostřednictvím více souborů. Pokud chcete vyhledat cokoli v základu kódu, stiskněte Ctrl+T a zobrazte vyhledávací pole Přejít na vše .
Pokud chcete zúžit obor hledání, zadejte jeden z 1mísmenných filtrů, následovaný mezerou a pak to, co hledáte.
Seznam chyb
Jakmile nastavíte požadovaný jazyk C++ Standard a všechny další možnosti kompilátoru (Obecné vlastnosti>projektu>), zkompilujte projekt stisknutím kombinace kláves Ctrl+Shift+B. Můžete očekávat, že se zobrazí některé chyby a upozornění ve formě červených vlnovek na různých místech v kódu. Chyby se také zobrazí v seznamu chyb. Další informace o konkrétní chybě potřebujete kliknutím na kód chyby přejít 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, jsou chyby NÁSTROJE MSBuild, které označují 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 v dokumentaci další informace o konkrétní chybě v historii změn a vylepšeních shody sady Visual Studio.
- Vylepšení shody jazyka C++
- Historie změn v jazyce Visual C++ 2003 – 2015
- Přehled potenciálních problémů s upgradem
Modernizace kódu pomocí analýzy kódu
Při upgradu doporučujeme spustit analýzu kódu v projektu tak, 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 pravidel C++ Core Guidelines. Díky tomu, že je v souladu s těmito informacemi výrazně snížíte nebo odstraníte běžné zdroje chyb, a zároveň zajistíte, aby byl váš kód čitelnější a lépe udržovatelný. Analýza kódu pomocí nativních doporučených pravidel Microsoftu je ve výchozím nastavení povolená. V části Analýza kódu vlastností>projektu>můžete povolit další pravidla. Kód, který porušuje jedno z pravidel, se označí jako upozornění a podtrží se zeleným vlnovkou v editoru kódu. Když najedete myší na vlnovku, zobrazí se popis rychlého informací , který tento problém popisuje.
Kliknutím na ikonu filtru ve sloupci Kód vyberte, která upozornění se zobrazí.
Chyby a upozornění analýzy kódu se také zobrazují v seznamu chyb stejně jako chyby kompilátoru.
Můžete změnit, která pravidla jsou aktivní, a vytvořit vlastní sady pravidel. Další informace o použití analýzy kódu naleznete v tématu Analýza kódu pro C/C++ přehled.
Modernizace kódu pomocí rychlých akcí
Editor kódu poskytuje rychlé akce pro některá běžná doporučení. Když se zobrazí ikona žárovky, můžete na ni 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é ukazuje popis rychlého informací, který se zobrazí, když na něj najede kurzor myši:
Vzhledem k tomu, že použití maker se nedoporučuje v moderním jazyce C++, visual Studio usnadňuje převod maker na constexpr
funkce:
Klikněte pravým tlačítkem myši a
AVERAGE
zvolte Přejít k definici.Klikněte na ikonu šroubováku a zvolte Převést makro na constexpr.
Makro se převede, jak je znázorněno níže:
A volání AVERAGE
je teď barevné jako volání funkce a popis rychlé informace zobrazuje vyvolaný typ funkce:
Inicializace proměnných
Neinicializované proměnné můžou obsahovat náhodné hodnoty, které vedou k vážným chybám. Analýza kódu označuje tyto instance 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 jsou pohodlnější než řetězce s vloženými řídicími znaky. Klikněte pravým tlačítkem myši na řetězec a zvolte Rychlé akce a převeďte ho na nezpracovaný řetězcový literál.
Řetězec se převede na: R"(C:\Users\bjarnes\demo\output.txt)"
.