A C++ újdonságai a Visual Studióban

A Microsoft C++ Build Tools (MSVC Build Tools) verziószámozása már nem szinkronizálódik a Visual Studio verziószámozásával a Visual Studio 2026 18.0-s és a Microsoft C++ Build Tools 14.50-es verziójától kezdve. Az MSVC legújabb frissítéseit az MSVC újdonságai című témakörben találja.

A C++ újdonságai a Visual Studio 2022-ben

A Visual Studio 2022 számos frissítést és javítást biztosít a Microsoft C++ fordítóhoz és -eszközökhöz. A Visual Studio IDE a teljesítmény és a hatékonyság terén is jelentős fejlesztéseket kínál, és natív módon fut 64 bites alkalmazásként.

A C++ újdonságai a Visual Studio 17.14-es verziójában

Kiadás dátuma: 2025. május

További információ erről: Nézd
A C++-fejlesztők újdonságai Mi újdonságot kínál a Visual Studio 2022 17.14 a C++ fejlesztőknek
Standard library (STL) egyesített C++26 és C++23 funkciók, Nyelvi munkacsoport (LWG) problémák megoldása, teljesítményjavítások, továbbfejlesztett viselkedés és kijavított hibák STL changelog 17.14
Új funkciók az IDE-ben Visual Studio 2022 17.14-es verzió kibocsátási megjegyzések
C++ nyelvi frissítések C++ nyelvi frissítések az MSVC-ben a Visual Studio 2022 17.14-ben
A C++ nyelv megfelelőségét javító fejlesztések A Visual Studio 2022 17.14 C++ megfelelőségi fejlesztései, viselkedésváltozásai és hibajavításai

Az új funkciók gyors kiemelése:

  • A C++ dinamikus hibakeresés lehetővé teszi az optimalizált kód hibakeresését anélkül, hogy ez hatással lenne a teljesítményre. További információ: C++ Dinamikus hibakeresés.

  • C++23-funkciók implementálása (szükséges /std:c++latest vagy /std:c++23preview):

  • Dokumentációs megjegyzések automatikus létrehozása a GitHub Copilottal. További információ: Az automatikus dokumentációs megjegyzések létrehozása a Visual Studióban.

  • A Visual Studióban a Modellválasztóval válassza ki a GitHub Copilot AI-modelljét. További információ: A Copilot Chat AI-modelljének módosítása. Ez a képernyőkép a Modellválasztót mutatja a GitHub Copilot csevegőablakának alján:

    Képernyőkép a GitHub Copilot csevegőablakáról, kiemelve a Modellválasztó legördülő menüt.

    A Modellválasztó legördülő listája meg van nyitva. A lehetőségek közé tartozik: GPT-4o, o3-mini, Claude 3.7 Szonett gondolkodás, és mások.

  • Az Unreal Engine integrációs fejlesztései:

    • A Visual Studio C++ hibakeresője mostantól támogatja az Unreal Engine Blueprintset.
    • A fájlok, modulok és beépülő modulok készítésére szolgáló parancsok natív módon érhetők el a Visual Studióban.
  • Az új fordítójelző /forceInterlockedFunctions futás közben dinamikusan kiválasztja az Armv8.0 terhelési és tárolási kizárólagos utasításokat, vagy az Armv8.1 Large System Extension (LSE) atomi utasításait a processzor képessége alapján.

  • Hozzáadott támogatás az IntelliSense-alapú kiegészítésekhez és gyors információkhoz a Visual Studio CMake-moduljaihoz. Megtekintheti az összes elérhető CMake-modult, és ha egy hivatkozott CMake-modulra mutat, az IntelliSense további információt nyújt a kiválasztott modulról:

    Képernyőkép a C Make Print Helperst ismertető Intellisense-ről.

    A képernyőkép a C Make Lists .txt fájlban lévő szerkesztésről szól. A kurzor az „include” (CMakePrintHelpers) elemen van. Intellisense mondja: Kényelmi függvények tulajdonságok és változók kiírására, amelyek hasznosak a hibakereséshez.

    Amikor elkezd begépelni egy CMake-modul nevét az Ön CMakeLists.txt vagy más CMake-szkriptfájlokba, az IntelliSense a választható modulok listáját tartalmazza:

    Képernyőkép az IntelliSense-ről egy include utasításhoz.

    A képernyőkép a C Make Lists .txt fájlban lévő szerkesztésről szól. A kurzor az 'include'-on van (C Make). Az Intellisense legördülő menüben a CMake Add Fortran alkönyvtár, a CMake Dependent Option és más bejegyzések találhatók.

  • Útmutatók támogatási kódtára (GSL) 4.2.0: Ez a kiadás teljesítménybeli fejlesztéseket tartalmaz az új funkciókhoz gsl::spanés a C++ szabványokkal való jobb igazodáshoz. További információért lásd: Útmutatók támogatására szolgáló könyvtár v4.2.0-verzió.

A C++ újdonságai a Visual Studio 17.13-es verziójában

Kiadás dátuma: 2025. február

További információ erről: Nézd
A C++-fejlesztők újdonságai C++ fejlesztőknek szóló újdonságok a Visual Studio 2022 17.13-ban
Standard kódtár (STL) C++26 és C++23 funkciók, nyelvi munkacsoport (LWG) problémamegoldások, teljesítményjavítások, továbbfejlesztett viselkedés és kijavított hibák STL changelog 17.13
Új funkciók az IDE-ben Visual Studio 2022 17.13-es verzió kibocsátási megjegyzései
C++ nyelvi frissítések MSVC fordítóprogram frissítései a Visual Studio 2022 17.13
A C++ nyelv megfelelőségét javító fejlesztések Visual Studio 2022 17.13- C++ kompatibilitási fejlesztései, viselkedési változásai és hibajavításai

Néhány új funkció gyors kiemelése:

  • C++ nyelvi fejlesztései

    • Próbálja ki a C++23 előzetes verziójú funkciókat a C++ Language Standard /std:c++23previewbeállításával. Ez a beállítás lehetővé teszi a C++23 legújabb funkcióit és hibajavításait. További információ: /std (A nyelvi standard verzió megadása).

    • A C++23 size_t szó szerinti utótagjának támogatása, amely segít elkerülni a csonkolásokat és az előjeles összehasonlítási eltéréseket – különösen hurkok írásakor. Például:

      // Infinite loop if v.size > max unsigned int 
      for (auto i = 0u; i < v.size(); ++i)
      { 
        ...
      } 
      
      // Fixed because of uz literal 
      for (auto i = 0uz; i < v.size(); ++i)
      { 
        ...
      } 
      
    • Az x86-os és x64-alapú kódgenerálás vektorhosszainak támogatása. További információ: /vlen.

    • Az Intel Advanced Vector Extensions 10 1-es verziójának támogatása. További információért a(z) /arch:AVX10.1-ról/ről lásd /arch (x64).

  • Standard könyvtár fejlesztései

    • Standard kódtár-támogatás a coroutineshez. Ebben a példában P2502R2, a fib függvény egy koroutin. A co_yield utasítás végrehajtásakor a rendszer felfüggeszti a fib, és visszaadja az értéket a hívónak. A fib korutin későbbi folytatásával további értékeket tud előállítani anélkül, hogy manuálisan kezelné az állapotot.

      std::generator<int> fib()
      { 
        auto a = 0, b = 1; 
      
        while (true)
        { 
            co_yield std::exchange(a, std::exchange(b, a + b)); 
        }
      } 
      
      int answer_to_the_universe()
      { 
        auto rng = fib() | std::views::drop(6) | std::views::take(3); 
        return std::ranges::fold_left(std::move(rng), 0, std::plus{}); 
      } 
      
  • Áthelyezte a system_clock, high_resolution_clockés chrono_literals elemeket egy gyakran használt belső fejlécből a <chrono>-ba. Ha olyan fordítóhibákat lát, amelyek nem ismerik fel az olyan típusokat, mint a system_clock, vagy a felhasználó által definiált literálokat, például a 1729ms, vegye fel a <chrono>.

  • Továbbfejlesztettük bitset konstruktorok vektorizált implementációit sztringekből, basic_string::find_last_of(), remove(), ranges::remove, valamint az minmax_element() és minmax() algoritmuscsaládokból.

  • A következő vektorizált implementációk hozzáadva:

    • find_end() és ranges::find_end 1 bájtos és 2 bájtos elemekhez.
    • basic_string::find() és basic_string::rfind() egy részsztringhez.
    • basic_string::rfind() egyetlen karakterhez.
  • Egyesített C++23 hibajelentések:

    • P3107R5 Lehetővé teszi a <print>hatékony végrehajtását .
    • P3235R3std::print Több típus gyorsabban, kevesebb memóriával.
  • GitHub Copilot

    • A GitHub Copilot Free már elérhető. Havonta 2000 kódkiegészítést és 50 csevegési kérést kaphat díjmentesen.

    • A GitHub Copilot-kódkiegészítések automatikus kiegészítési javaslatokat nyújtanak a kódba ágyazva. A C++ fejlesztői élmény fokozása érdekében a GitHub Copilot más releváns fájlokat is tartalmaz kontextusként. Ez csökkenti a hibákat, miközben relevánsabb és pontosabb javaslatokat kínál.

    • Mostantól a GitHub Copilottól is kérhet kód-felülvizsgálatot a Git Changes ablakból:

      Képernyőkép a Git Changes ablakról, amelyen a GitHub Copilot Review gomb van kiemelve.

      A Git Changes ablak meg van nyitva, a GitHub Copilot Review gomb ki van emelve.

      A GitHub Copilot keresi a lehetséges problémákat, és megjegyzéseket hoz létre hozzájuk:

      A Problémát magyarázó GitHub Copilot képernyőképe.

      A GitHub Copilot hibát talált az if ( is_enabled_) new_site.disable() vonallal kapcsolatban. Azt mondja, hogy ez egy hiba lehet, és valószínűleg így kellene lennie: ha (is_enabled_) new_site.enable(), mert a szándék az, hogy engedélyezze az új helyet, ha a töréspont engedélyezve van.

      A funkció használatához győződjön meg arról, hogy az alábbiak be vannak kapcsolva:

      • Eszközök>Beállítások>Előzetes verziójú szolgáltatások>Pull request megjegyzések
      • Eszközök>Beállítások>GitHub>Copilot>Forráskód-vezérlés integráció>Git előzetes funkciók engedélyezése.
    • A GitHub Copilot Edits egy új funkció, amely a projekt több fájljában is végezhet módosításokat. Új Szerkesztési munkamenet indításához kattintson Új szerkesztési munkamenet létrehozása elemre a GitHub Copilot Csevegés ablakának tetején:

      Képernyőkép a GitHub Copilot Csevegés ablakáról. Az Új szerkesztési munkamenet létrehozása gomb ki van emelve.

      Írja le a kívánt módosításokat, és a Copilot releváns módosításokat javasol. A szerkesztéseket egyenként tekintheti meg, és elfogadhatja a kívánt módosításokat, vagy kijavíthatja őket:

      Képernyőkép a GitHub Copilot Csevegés ablakáról, amely megjeleníti a szerkesztett fájlokat.

      A GitHub Copilot megjeleníti az elvégzett módosítások összegzését, például az 1-et. Hozzon létre egy új alosztályt range_breakpoint a include/libsdb/breakpoint.hpp" és a 2 fájlban. Implementálja a range_breakpoint osztályt az src/breakpoint.cpp. Megjelenik egy lehetőség a módosítások elfogadására.

      További információk: Hatékonyabban átlépkedhetsz több fájl között a GitHub Copilot Edits segítségével.

  • CMake

    • Most már támogatja a CMake Presets 9-et. Új makrókibővítések egy előre beállított tartalmazó mezőben. További információ a hivatalos CMake-dokumentációban található Makróbővítés résznél.

A C++ újdonságai a Visual Studio 17.12-es verziójában

Kiadás dátuma: 2024. november

További információ erről: Nézd
A C++-fejlesztők újdonságai Újdonságok a C++ fejlesztők számára a Visual Studio 2022 17.12-ben
Standard library (STL) egyesített C++26 és C++23 funkciók, Nyelvi munkacsoport (LWG) problémák megoldása, teljesítményjavítások, továbbfejlesztett viselkedés és kijavított hibák STL Változásnapló 17.12
A Visual Studio 17.12 IDE új funkciói Visual Studio 2022 17.12-es verzió kibocsátási megjegyzések
A C++ nyelvmegfelelőség fejlesztései a Visual Studio 2022 17.12-ben C++ konformitási fejlesztések, viselkedésbeli változások és hibajavítások a Visual Studio 2022 17.12 verzióban

Az új funkciók gyors kiemelése:

  • standard könyvtár fejlesztések
    • A C++23 formázási tartományok (P2286R8) implementációja befejeződött. Hozzáadott formázók a tárolóadapterek számára: stack, queueés priority_queue.
    • Többdimenziós alsó index operátorokat adtunk hozzá, amelyek szintén támogatják a <mdspan>. Például: print("m[{}, {}]: '{}'; ", i, j, m[i, j]).
  • Játékfejlesztés C++-ben
  • Építsen betekintést
    • A Build Insightst a kijelölt fájlokon futtathatja. Jelölje ki a kívánt fájlokat a Megoldáskezelő, kattintson a jobb gombbal, és válassza A Build Insights futtatása a kijelölt fájlokon: A megoldáskezelőben lévő fájlok képernyőképe. A helyi menü meg van nyitva, és ki van emelve a Build Insights a kijelölt fájlokon való futtatásának lehetősége.
    • A Build Insights eredményeit projekt szerint szűrheti. Kattintson a szűrő gombra a szűrőoszlop fejlécén, és jelölje ki azokat a projekteket, amelyeket meg szeretne jeleníteni: A Build Insights ablak képernyőképe a Belefoglalt fájlok lapon. A szűrőgomb ki lett jelölve, és megjelenik a projektek listája. A Két projekt melletti jelölőnégyzetek be vannak jelölve.
    • A Build Insights ablakban a kérdőjel ikonra kattintva megtekintheti a Build Insights ablak lapjainak rövid leírását, valamint a dokumentációra mutató hivatkozást a részletes magyarázat érdekében: A Build Insights ablak képernyőképe a nézet magyarázata gombbal (kérdőjel egy körben) kiemelve.
  • GitHub Copilot
    • Az A Copilot kérése elemre kattintva, amely található egy változó értéke mellett, betekintést nyerhet az AI által vezérelt megértésekbe arról, hogy mi eredményezte a jelenlegi állapotot. A következő program például egy ciklusfeltételben található off-by-one (egyik eltérés) hibát tartalmaz:

    Az Automatikusak ablak képernyőképe. A változó neve NULL. A mellette lévő Ask Copilot ikon ki van emelve.

    A problémát okozó kód a következő: for (auto it = h.animals_.begin(); it <= h.animals_.end(); it++).

    Ha a it változónál a Copilot kérése ikonra kattint, az elmondja, miért van <NULL>:

    Egy GitHub Copilot-ablak képernyőképe.

    Ez a hiba egy int calculate_number_of_cats(const house& h) függvényben található. A GitHub Copilot üzenete szerint: "A kifejezés értéke NULL, ami azt jelenti, hogy az iterátor nem mutat az animals_ vektor egyetlen érvényes elemére sem." A program kontextusában a házi objektum animals_ vektorán át kell iterálni a macskaobjektumok számának megszámlálásához. Miért null. A helyiek és a hívásverem környezete alapján: a házobjektum h üres animals_ vektorral rendelkezik, amelynek mérete 0. Az <= h.animals_.end() ciklusfeltétel helytelen. Ez kell, hogy legyen != h.animals_.end()."

    • A Visual Studio Hibalistában kattintson az Ask Copilot elemre, hogy segítséget kapjon a hibához és a javasolt javításhoz. Például:

    Képernyőkép a Hibalista ablakról.

    Az Ask Copilot ikon ki van emelve egy hiba mellett, ahol a unique_ptr egy törölt függvényre próbál hivatkozni.

    Ha a Copilot kérdésére kattint, a következő hibaüzenet jelenik meg:

    Képernyőkép a GitHub Copilot hibájának magyarázatáról.

    A Copilot üzenete szerint: "A hiba azért fordul elő, mert a tartományalapú for ciklus std::unique_ptr objektumokat próbált másolni, ami nem engedélyezett, mivel az std::unique_ptr nem másolható. Ennek kijavításához módosítottam a hurkot, hogy hivatkozással kerülje az std::unique_ptr objektumok másolását. Így a hurok az std::unique_ptr objektumokra mutató hivatkozásokon halad át, ami megengedett.

  • Hibakeresés
    • Új hibakeresési vizualizációk mutex, recursive_mutexés move_iterator.
    • A hibakereső mostantól visszatérési értékeket jelenít meg inline módon: Egy képernyőkép egy eszköztippről, amely a 8,25 értékét mutatja. Ez a visszatérési utasítást követő kifejezés átlépése utáni eredmény.

A C++ újdonságai a Visual Studio 17.11-es verziójában

Kiadás dátuma: 2024. augusztus

További információ erről: Nézd
A C++-fejlesztők újdonságai Újdonságok a Visual Studio 2022 17.11 C++ fejlesztőinek
Standard kódtár (STL) egyesített C+++26 és C++23 funkciók, C++20 hibajelentések, Nyelvi munkacsoport (LWG) problémák megoldása, teljesítményjavítások, továbbfejlesztett viselkedés és kijavított hibák STL changelog 17.11
A Visual Studio 17.11 IDE új funkciói Visual Studio 2022 17.11-es kiadási megjegyzések
A C++ nyelvmegfelelőség fejlesztései a Visual Studio 2022 17.11-ben Visual Studio 2022 17.11- C++ kompatibilitási fejlesztései, viselkedési változásai és hibajavításai

Az új funkciók részleges listája:

  • standard könyvtár fejlesztések

    • A formázott kimeneti implementáció mostantól tartalmazza a std::range_formatter-t és a std::pair, valamint a std::tupleformázóit.
    • std::println() támogatása argumentumok nélkül hozzáadva. Ez az P3142R0javasolt üres sort nyomtatja ki.
    • Továbbfejlesztett vektorizálás több algoritmushoz, beleértve a replace_copy(), replace_copy_if(), ranges::replace_copy, ranges::replace_copy_if, find_first_of() és ranges::find_first_of algoritmusokat, 8 bites és 16 bites elemekhez, mismatch(), ranges::mismatch, count(), ranges::count, find(), ranges::find, ranges::find_last és ranges::iota esetében.
  • Játékfejlesztés C++-ben

    • Mostantól hozzáadhat általános Unreal Engine-osztálysablonokat, modulokat és beépülő modulokat a Visual Studióból. További információ: Unreal Engine-osztályok, modulok és beépülő modulok hozzáadása a Visual Studio.
    • Az új Unreal Engine eszköztár gyors hozzáférést biztosít az Unreal Engine-hez kapcsolódó műveletekhez a Visual Studióban. Az eszköztár lehetővé teszi az Unreal Engine folyamatok gyors csatolását, a Blueprints gyorsítótár újraolvasását, az Unreal Engine naplójának gyors elérését, valamint a Visual Studio Unreal Engine konfigurációs oldalának gyors elérését. További információ: Unreal Engine Toolbar.
    • Mostantól projekt szerint szűrheti a nyomkövetési eredményeket. Az eredmények az egyes sorokban a relatív elérési utat és a fájlnevet jelenítik meg a teljes elérési út helyett. Az eredmények csoportosítása a Belefoglalt fájlok nézetben is javul:

    Képernyőkép a továbbfejlesztett Belefoglalt fájlok diagnosztikai eredményeiről.

    A Belefoglalt fájlok nézet új oszlopot tartalmaz a projekthez. A Projekt oszlop van kiválasztva, és az olyan projektek, mint az Összes kijelölése, a CompilerIdC, az OpenAL, a common és így tovább, vannak kiválasztva. A mellékelt fájlok relatív elérési út és fájlnév szerint vannak felsorolva, és csoportosítva vannak.

  • CMake hibakeresési

    • Mostantól hibakeresheti a CMake szkripteket és CMakeLists.txt fájlokat a Visual Studio hibakeresőjében olyan CMake-projektek esetén, amelyek Linuxot céloznak meg a Windows alrendszer Linux számára (WSL) vagy SSH használatával. CMake hibakeresési munkamenet elindításához a Visual Studióban állítson be egy töréspontot a CMakeLists.txt fájlban, majd lépjen a Project>pontra, hogy CMake hibakereséssel konfigurálja a gyorsítótárat.
  • GitHub Copilot

    • Ha a kódszerkesztőben a szimbólumokra mutat, kattintson a Copilot További információ gombra a gyors információ párbeszédpanelen, hogy többet tudjon meg egy adott szimbólumról:

    Képernyőkép a Gyors információ ablakról.

    A Gyors információ ablak egy függvény felett jelenik meg. A További információ hivatkozás ki van emelve.

    • A GitHub Copilot elnevezési javaslatokat hozhat létre az azonosítókhoz (változókhoz, metódusokhoz vagy osztályokhoz) az azonosító használata és a kód stílusa alapján.

      Képernyőkép a GitHub Copilot Átnevezés párbeszédpanelről.

      Az Átnevezés párbeszédpanelen egy Új név mező található, amely a következő lehetőségeket jeleníti meg: text_color, font_color, display_color, console_color és menu_text_color.

    Aktív GitHub Copilot előfizetésrevan szüksége. Kattintson a jobb gombbal az átnevezni kívánt változóra, és válassza az Átnevezés (Ctrl+R, Ctrl+R) lehetőséget. Az elnevezési javaslatok létrehozásához válassza a GitHub Copilot sparkle ikont.

  • Hibakeresés

    • A C++ feltételes töréspontjai gyorsabbak.
  • Diagnosztikai fejlesztések

    • Javított diagnosztika a std::get<T> hívásakor olyan std::tuple esetén, amely sablonargumentumai között több T-példány van. Korábban az MSVC jelentette:
      error C2338: static_assert failed: 'duplicate type T in get<T>(tuple)'.
      Most a következő jelentésekről számol be:
      error C2338: static_assert failed: 'get<T>(tuple<Types...>&) requires T to occur exactly once in Types.(N4971 [tuple.elemm]/5)'
    • Továbbfejlesztett diagnosztika, ha std::ranges::to nem tudja létrehozni a kért eredményt. Korábban az MSVC jelentette:
      error C2338: static_assert failed: 'the program is ill-formed per N4950 [range.utility.conv.to]/2.3'
      Most a következő jelentésekről számol be:
      error C2338: static_assert failed: 'ranges::to requires the result to be constructible from the source range, either by using a suitable constructor, or by inserting each element of the range into the default-constructed object. (N4981 [range.utility.conv.to]/2.1.5)'

A Visual Studio 17.10-es verziójának C++ újdonságai

2024. májusi

További információ erről: Nézd
A C++-fejlesztők újdonságai A C++ fejlesztőinek újdonságai a Visual Studio 2022 17.10-ben
Standard kódtár (STL) egyesített C+++26 és C++23 funkciók, C++20 hibajelentések, Nyelvi munkacsoport (LWG) problémák megoldása, teljesítményjavítások, továbbfejlesztett viselkedés és kijavított hibák STL changelog 17.10
A Visual Studio 17.10 IDE új funkciói Visual Studio 2022 17.10-es verzió kibocsátási megjegyzései
A C++ nyelvmegfelelőség fejlesztései a Visual Studio 2022 17.10-ben Visual Studio 2022 17.10- C++ kompatibilitási fejlesztései, viselkedésbeli változásai és hibajavításai

Az új funkciók részleges listája:

  • MSVC Toolset Update: Az MSVC eszközkészlet verziója 19.39-ről 19.40-es verzióra frissül. Ez hatással lehet a verzióval kapcsolatos feltételezésekkel rendelkező projektekre. További információért arról, hogyan hat ez az olyan projektekre, amelyek feltételezik, hogy az MSVC-verziók mind 19.3X típusúak a Visual Studio 2022 kiadásai esetén, lásd a MSVC-eszközkészlet alverziószámának 14.40-es változatát a VS 2022 v17.10-ben.
  • Standard kódtár fejlesztései: A standard kódtár támogatja P2510R3 formázási mutatókat, így a mutatók formátumjelölőinek készlete std::format jobban megfelel az egész számok esetében már meglévőknek. Továbbfejlesztettük a std::min_element, std::ranges::minés barátok vektorizált implementációit.
  • Build Insights: Mostantól sablonpéldányosítási információkat biztosít. Tekintse meg a Templates View for Build Insights for Visual Studio vagy a Pure Virtual C++ – Templates view for Build Insights in Visual Studio felvételt.
  • Unreal Engine beépülő modul: Az Unreal Engine beépülő modulhoz egy új, választható funkció lehetővé teszi, hogy a háttérben fusson, ezáltal csökkentve az indítási költségeket. Ez egy olyan bejelentkezési funkció, amely Eszközök>Beállítások>Unreal Enginekeresztül aktiválódik.
  • Linuxúj funkciói: Lásd: Új Linux-fejlesztési funkciók a Visual Studio.
  • CMake-célok: Mostantól rögzítheti a célokat a CMake-célok nézetében.
  • Connection Manager UX: A felhasználói élmény zökkenőmentesebb élményt nyújt a távoli rendszerekhez való csatlakozáskor. További információ: Visual Studio Connection Managerhasználhatósági fejlesztései.
  • Lekéréses kérelmek megjegyzései: Mostantól közvetlenül a munkafájlban tekintheti meg a GitHub és az Azure DevOps megjegyzéseit. Engedélyezze a funkciójelölőt, Pull kérés megjegyzései a Beállítások>Környezet>Előzetes verziójú szolgáltatások, és váltson át a pull kérés ágára a munka megkezdéséhez.
  • AI-Generated Tartalom: A GitHub Copilot mostantól lekéréses kérelmek leírását is meg tudja fogalmazni. Aktív GitHub Copilot-előfizetést igényel. Próbálja ki a AI által generált lekéréses kérelem leírásának hozzáadása a lekéréses kérelem létrehozása ablakban található szikrázó toll ikonra kattintva.
  • Kép előnézete: Vigye az egérmutatót egy képútvonal fölé a méretadatokat tartalmazó előnézet megtekintéséhez. A méret 500 képpontban van korlátozva szélességben és magasságban.

    Rámutatás előnézetének képernyőképe.

    Az egér a sor fölött lebeg: "std::filesystem::path vs_logo_path = \"../images/vs_logo.png\"". Alatta megjelenik a Visual Studio emblémájának előnézete, valamint a 251 x 500 képpontos és 13,65 KB méretű információ.

  • Töréspont/Nyomkövetési pont létrehozása: Mostantól közvetlenül a forráskód kifejezéseiből hozhat létre feltételes töréspontokat vagy nyomkövetési pontokat a jobb gombbal kattintva elérhető menüből. Ez a funkció az automatikus változók, a helyi változók, a figyelőablakok vagy az adatleírások tulajdonság- vagy mezőnevein és értékein működik.
  • "Csatolás a folyamathoz" párbeszédpanel: A "Csatolás a folyamathoz" párbeszédpanel által biztosított funkcionalitás felhasználóbarátabb. Mostantól egyszerűen válthat a fa- és listanézetek között, jobban rendszerezheti a folyamatokat összecsukható szakaszok használatával, és egyszerűbb kombinált lista használatával választhatja ki a kódtípusokat. A "Select/Track Window" funkció is egyszerűbben használható, így kétirányú nyomkövetést tesz lehetővé: a folyamat kiválasztása kiemeli az ablakot, és egy ablakra kattintva kiválasztja a folyamatot.
  • GitHub Copilot-integráció: A GitHub Copilot és a Copilot Chat bővítmények mostantól egységesek, és közvetlenül a Visual Studióban lesznek elküldve. A telepítéshez telepítse a GitHub Copilot összetevőt a Visual Studio Installer:

    Képernyőkép a Visual Studio Installer GitHub Copilot telepítési lehetőségéről.

    A GitHub Copilot felülete a Visual Studio jobb felső sarkában található. A használatához aktív GitHub Copilot-előfizetésre van szüksége.

    Képernyőkép a GitHub Copilot gombról.

    A GitHub Copilot gomb a Visual Studio jobb felső sarkában látható. Lehetősége van csevegőablak megnyitására, a GitHub Copilot beállításainak megnyitására, további információkra és a copilot-előfizetés kezelésére.

A C++ újdonságai a Visual Studio 17.9-es verziójában

2024. februárban megjelent

További információ erről: Nézd
A C++-fejlesztők újdonságai Újdonságok a C++ fejlesztők számára a Visual Studio 2022 17.9-ben
Standard kódtár (STL) egyesített C++23-funkciók, teljesítménybeli fejlesztések, továbbfejlesztett viselkedés, nyelvi munkacsoport (LWG) problémák megoldásai és kijavított hibák STL changelog 17.9
A Visual Studio 17.9 IDE új funkciói Visual Studio 2022 17.9-es verziójának kibocsátási megjegyzései
A C++ nyelvmegfelelőség fejlesztései a Visual Studio 2022 17.9-ben Visual Studio 2022-ben a C++ megfelelőség fejlesztései, viselkedésváltozásai és hibajavításai
C++ háttérfrissítések összegzése MSVC háttérrendszer frissítései a Visual Studio 2022 17.3-as verziója óta

Az új funkciók részleges listája:

  • #include diagnosztika, amely részletes elemzést nyújt a #include irányelvekről. A funkció aktiválásához kattintson a jobb gombbal egy #include-ra, és válassza ki a #include irányelveket. Ezután>kapcsolja be a #include irányelv diagnosztikát. Az egyes #include fölött hányszor hivatkozik a kód az adott #include fájlra. A hivatkozásra kattintva hivatkozásra kattintva keresse meg, hogy a kód hol használ valamit a fejlécfájlból. A #include-irányelvek build idejének megtekintéséhez a Build Insights eszközt a Build menüből indíthatja el a Következők futtatása: Run Build Insights a megoldáson>>.

    #include diagnosztika képernyőképe.

    A #include fölött található egy **hivatkozás** link, valamint számos hivatkozás az erre a #include fájlra (ebben az esetben 1). A buildelési idő is szerepel a listán (ebben az esetben másodpercenként 1/2-nél kevesebb).

  • A memóriaelrendezés vizualizációja, amely bemutatja, hogyan van elrendezve a memória az osztályok, a strukturák és az uniók számára. Mutasson egy típusra, és válassza a gyorsinformációban lévő Memóriaelrendezés hivatkozást a kijelölt típus memóriaelrendezését megjelenítő dedikált ablak megnyitásához. Az egyes adattípusokra való rámutatás ebben az ablakban részletes információkat nyújt a típuson belüli méretükről és eltolásukról.

    Képernyőkép a memóriaelrendezés ablakáról

    A memóriaelrendezés ablaka a Kígyó osztály tartalmát jeleníti meg. Az osztály különböző mezőinek memóriaeltolódásait jeleníti meg, mint például a fej és a test helyzetét leíró Pont osztályok, a pontszám, és így tovább.

  • Most már megadhatja a saját CMake futtatható állományát. Ez a funkció akkor hasznos, ha a CMake egy olyan verzióját szeretné használni, amely nem a Visual Studióval van szállítva. Lépjen Eszközök>Beállítások elemre, és válassza CMake>Általánoslehetőséget. Válassza Egyéni CMake végrehajtható engedélyezése, és adja meg a végrehajtható CMake könyvtár elérési útját.

    A CMake beállításai párbeszédpanel képernyőképe

    A CMake beállításai ablakban az "Egyéni CMake végrehajtható állomány engedélyezése" lehetőség és a "CMake végrehajtható könyvtár" mező ki van emelve.

  • Továbbfejlesztett IntelliSense az Unreal Engine-projektekhez.
  • Továbbfejlesztett C++23-támogatás: A std::format és a std::spanformattable, range_format, format_kindés set_debug_format() a P2286R8 formázási tartományok<mdspan> szerint, valamint a P0009R18 és az utólagos szövegmódosítások részeként a C++23 szabványhoz. Emellett format()P2510R3-onként formázhatja a mutatókat.

A C++ újdonságai a Visual Studio 17.8-es verziójában

Kiadva: 2023. november

További információ erről: Nézd
A C++-fejlesztők újdonságai Újdonságok a C++ fejlesztők számára a Visual Studio 2022 17.8-ban
Standard kódtár (STL) egyesített C++26, C++23 funkciók, C++20 bővítmények, Nyelvi munkacsoport (LWG) problémák megoldásai, teljesítményjavítások, továbbfejlesztett viselkedés és kijavított hibák STL changelog 17.8
A Visual Studio 17.8 IDE új funkciói Visual Studio 2022 17.8-es verziójának kibocsátási megjegyzései
A C++ nyelvmegfelelőség fejlesztései a Visual Studio 2022 17.8-ban Visual Studio 2022-ben a C++ megfelelőség fejlesztései, viselkedésváltozásai és hibajavításai
A Visual Studio, a VS Code és a vcpkg 2023-ban végzett C++ fejlesztéseinek áttekintése C++-fejlesztések egy éve

Az új funkciók részleges listája:

  • C++ strukturált diagnosztikák a Kimeneti ablakban és egy új probléma részletei ablak, amely további információt nyújt a hibáról. További információkért lásd: Strukturált SARIF kimenet és a Probléma részletei ablak.
  • Ez a funkció lehetővé teszi, hogy még a kód fordítása előtt megjelenítse az osztályok, a szerkezetek, az egyesítések, az alaptípusok vagy a számsorok méretét és igazítását. Vigye az egérmutatót az azonosító fölé, és egy gyors információ megjeleníti a méret- és igazítási információkat.
  • Egy funkció, amely azt javasolja, hogy mikor jelölje meg a tagfüggvényeket const, mert nem módosítják az objektum állapotát. Vigye az egeret egy tagfüggvény fölé, majd kattintson a villanykörte ikonra a függvény megjelöléséhez const-ként.
  • A Visual Studio most arra kéri, hogy a globális függvényeket statikusként jelölje meg egy csavarhúzó ikonnal, amely a függvény neve alapján jelenik meg. Kattintson a csavarhúzó ikonra a függvény statikusként való megjelöléséhez.
  • A nem használt #include irányelvek halványan jelennek meg a szerkesztőben. Az egérmutatót a halvány beszúrásra viheti, és a villanykörte menü ikonnal eltávolíthatja a beszúrást, vagy az összes fel nem használt beszúrást. Más fejléceken keresztül közvetetten belefoglalt entitásokhoz is hozzáadhat #include irányelveket. További információért lásd: C/C++ tartalmazások tisztítása a Visual Studio.
  • További Unreal Engine-támogatás:
    • Az Unreal Engine tesztadapter lehetővé teszi az Unreal Engine-tesztek felderítését, futtatását, kezelését és hibakeresését a Visual Studio IDE elhagyása nélkül.
    • Az Unreal Engine Code kódtöredékeivel a taglistában megtalálhatja a közös Unreal Engine-szerkezeteket kódrészletekként.
    • A Build Insights mostantól integrálva van a Visual Studio 2022-vel, és MSBuild- és CMake-projektekkel működik együtt AZ MSVC használatával. Mostantól további információkat láthat egy függvény fordításáról, például a fordítás időtartamáról, a ForceInlines számáról és a fejlécfájlok buildelési idejére gyakorolt hatásáról. További információ: oktatóanyag: A build idő alatti függvényinlineozás hibaelhárítása és oktatóanyag: A fejlécfájl build időre gyakorolt hatásának elhárítása.
  • A távoli Linux-egységtesztek támogatása mostantól lehetővé teszi a CTest- és GTest-tesztek futtatását távoli Linux-gépein a Visual Studio Test Explorerből, a helyi tesztekhez hasonlóan.

A C++ újdonságai a Visual Studio 17.7-es verziójában

Kiadva 2023. augusztusában

További információ erről: Nézd
A C++-fejlesztők újdonságai Újdonságok a C++ fejlesztők számára a Visual Studio 2022 17.7-ben
A játékfejlesztéshez kapcsolódó új C++ funkciók A Visual Studio 2022 erejének felszabadítása a C++ játékfejlesztéshez
A standard kódtár (STL) egyesített C++23 funkciói, a nyelvi munkacsoport (LWG) problémáinak megoldása, a teljesítmény javítása, a jobb működés és a kijavított hibák STL changelog 17.7
A Visual Studio 17.7 IDE új funkciói Visual Studio 2022 17.7-es verziójának kibocsátási megjegyzései
A C++ nyelvmegfelelőség fejlesztései a Visual Studio 2022 17.7-ben Visual Studio 2022-ben a C++ megfelelőség fejlesztései, viselkedésváltozásai és hibajavításai

Az új funkciók részleges listája:

  • Gyorsabb hibakeresési munkamenetek és gyorsabb projektbetöltési idők
  • A makróbővítés részletes vizualizációja
  • Egykattintásos letöltés a Linux windowsos alrendszeréhez (WSL)
  • Továbbfejlesztett támogatás a Doxygen-megjegyzésekhez
  • C++ Build Insights játékfejlesztéshez
  • /std:clatest hozzá lett adva a C fordítóhoz.
  • Az Unreal Engine-projekt fejlesztései, például a gyorsabb IntelliSense és szintaxisszínezés, az Összes Unreal Engine-tervhivatkozás megkeresésének lehetősége stb.

A Visual Studio 17.6-os verziójának C++ újdonságai

2023 májusában megjelent

További információ erről: Nézd
A C++-fejlesztők újdonságai Újdonságok a Visual Studio 2022 17.6 C++ fejlesztőinek
A standard kódtár (STL) egyesített C++23 funkciói, a nyelvi munkacsoport (LWG) problémáinak megoldása, a teljesítmény javítása, a jobb működés és a kijavított hibák STL changelog 17.6
A Visual Studio 17.6 IDE új funkciói Visual Studio 2022 17.6-os kiadási megjegyzések
A C++ nyelvmegfelelőség fejlesztései a Visual Studio 2022 17.6-ban Visual Studio 2022-ben a C++ megfelelőség fejlesztései, viselkedésváltozásai és hibajavításai

Az új funkciók részleges listája a következőket tartalmazza:

  • CMake-szkript hibakeresése
  • Beépített támogatás a magas szintű árnyékolási nyelvhez (HLSL)
  • Unreal Engine Log viewer
  • A VCPKG alapértelmezés szerint hozzáadva
  • A C++20 kezdeti támogatása C++/CLI-projektekben és néhány C++23 standard kódtárfunkció a tartományokhoz.

A C++ újdonságai a Visual Studio 17.5-ös verziójában

Kiadva: 2023. február

További információ erről: Nézd
A C++-fejlesztők újdonságai A Visual Studio 2022 17.5 verziójának újdonságai a C++ fejlesztőknek
A standard kódtár (STL) egyesített C++23 funkciói, a nyelvi munkacsoport (LWG) problémáinak megoldása, a teljesítmény javítása, a jobb működés és a kijavított hibák STL changelog 17.5
A Visual Studio 17.5 IDE új funkciói Visual Studio 2022 17.5-ös kiadási megjegyzések

Az új funkciók részleges listája a következőket tartalmazza:

  • std::move, std::forward, std::move_if_noexceptés std::forward_like mostantól nem generált kódban, még hibakeresési módban sem hoznak létre függvényhívásokat. Ez a módosítás elkerüli az elnevezett típusátalakításokat, amelyek szükségtelen többletterhelést okozhatnak a hibakeresési buildekben. /permissive- (vagy egy olyan lehetőség, amely azt jelenti, például /std:c++20 vagy /std:c++latest) szükséges.

  • Hozzáadva [[msvc::intrinsic]]. Ezt az attribútumot alkalmazhatja egyetlen leadottból álló nem rekurzív függvényekre, amelyek csak egy paramétert vesznek fel.

  • Az integrált terminál linuxos konzoljának támogatása, amely lehetővé teszi az I/O terminál használatát.

  • Hozzáadva a kezdeti kísérleti támogatás a C11 atomi primitívekhez (<stdatomic.h>). Ezt a kísérleti funkciót a /experimental:c11atomics opcióval /std:c11 módban vagy annál újabb módban engedélyezheti.

  • Új, nagy megbízhatóságú kísérleti ellenőrzést adott hozzá az élettartam-ellenőrzőhöz a csökkentett zaj érdekében.

  • A Távoli fájlkezelő új előzetes verziója lehetővé teszi a fájlkönyvtár megtekintését a távoli gépeken a VS-en belül, valamint fájlok feltöltését és letöltését.

  • A Visual Studióval szállított CMake-végrehajtható fájlok módosított verziószámozása a Kitware-verzióknak megfelelően.

  • Hozzáadva a Hot Reload támogatását a CMake Projekt sablonhoz.

  • A C++-hoz készült "Ugrás a definícióhoz" mostantól finomabb módon jelzi, ha a művelet több időt vesz igénybe, a korábbi verziók modális párbeszédpanelének lecserélésével.

  • Megkezdődött egy kísérlet bevezetése, amely intelligensebb eredményeket biztosít a C++ automatikus kiegészítési és taglistájában. Ez a funkció korábban prediktív IntelliSense néven volt ismert, de most egy új bemutatómetódust használ.

  • Most egy natív Arm64 Clang-eszközkészletet szállítunk az LLVM számítási feladatunkkal, lehetővé téve natív fordítást Arm64-gépeken.

  • Honosítás hozzáadva a Image Watch bővítményhez (Ez a bővítmény elérhető a Marketplace-en, és nincs mellékelve a Visual Studio Installerrel).

  • A terminálablakok jelenleg futó fejlesztői tárolóba való megnyitásának támogatása hozzáadva.

  • Számos fejlesztést hajtott végre az IntelliSense makróbővítésében. A rekurzív bővítést több kontextusban engedélyeztük, és az előugró ablakhoz hozzáadtunk beállításokat a bővítmény vágólapra másolásához vagy a makró beágyazott kibontásához.

  • Az egyidejű figyelés mostantól támogatott a Soros megjelenítőben. Az egyidejű monitorozás lehetővé teszi több port egyidejű figyelését egymás mellett. Nyomja meg a plusz gombot, hogy megnyisson egy másik Soros monitort, és kezdje el.

  • Mostantól anélkül tekintheti meg az Unreal Blueprint-objektumban módosított alaposztályok tulajdonságait, hogy elhagyná a Visual Studiót. Kattintson duplán egy C++ osztály vagy tulajdonság tervhivatkozására az UE eszközfelügyelő megnyitásához a Visual Studióban.

  • Engedélyezve van a DevContainers távoli Linux-gépen való futtatása.

  • A CMake Célok nézetben engedélyezve van több cél kiválasztása az építéshez.

  • CMakePresets.json 5-ös verziójának támogatása hozzáadva. Az új funkciókról a CMake dokumentációjában tájékozódhat.

  • A Test Explorer lehetővé teszi több CMake-cél párhuzamos összeállítását és tesztelését.

  • A "Tároló megnyitása terminálon" lehetőség hozzáadva a Dev Containershez.

  • Standard kódtár-funkciók implementálása:

    • basic_format_stringP2508R1, , format_stringwformat_string
    • P2322R6ranges::fold_left, ranges::fold_rightstb.
    • P2321R2views::zip (nem tartalmazza zip_transform, adjacentés adjacent_transform)

A C++ újdonságai a Visual Studio 17.4-es verziójában

Megjelent 2022. nov.

További információ erről: Nézd
A C++-fejlesztők újdonságai A Visual Studio 2022 17.4- C++ fejlesztőinek újdonságai
A standard kódtár (STL) egyesített C++23 funkciói, a nyelvi munkacsoport (LWG) problémáinak megoldása, a teljesítmény javítása, a jobb működés és a kijavított hibák STL changelog 17.4
A Visual Studio 17.4 IDE új funkciói Visual Studio 2022 17.4-es verziójának kibocsátási megjegyzései
A C++ nyelvmegfelelőség fejlesztései a Visual Studio 2022 17.4-ben Visual Studio 2022-ben a C++ megfelelőség fejlesztései, viselkedésváltozásai és hibajavításai

A 17.4 új funkcióinak részleges listája:

  • Továbbfejlesztett fordítói hibaüzenetek, amelyek pontosabb és hasznosabb információkat nyújtanak, különösen a fogalmakhoz.

  • Hozzáadva egy kísérleti opció az MSVC-ben /experimental:log<directory>, amely a strukturált SARIF-diagnosztikát a megadott könyvtárba menti.

  • Az IntelliSense C23-attribútumainak támogatása és a C++20 modulok folyamatos támogatása.

  • Jobb indexelési teljesítmény új megoldás megnyitásakor. A nagy projektek 20-35% javulást érhetnek el a 17.3-hoz képest.

  • Névvel ellátott visszatérési érték továbbfejlesztett optimalizálása (NRVO):

    • Az NRVO engedélyezve van a kivételkezelést vagy hurkokat tartalmazó esetekben.
    • Az NRVO akkor is engedélyezve van a /Od alatt, ha a felhasználó átadja a /Zc:nrvo opciót, vagy ha a /std:c++20 vagy újabb verziót használják, illetve a /permissive-.
    • Most már letilthatja az NRVO-t a /Zc:nrvo- lehetőséggel.
  • Frissítette a Visual Studióval szállított LLVM verzióját a 15.0.1-es verzióra. A rendelkezésre álló információkról további információt az LLVM és Clang kibocsátási megjegyzéseiben talál.

  • A Visual Studio-hoz hozzáadták a támogatást a CMake projektekkel és vcpkg artifaktumokkal való munkához. Vcpkg-jegyzékfájlt tartalmazó projektek esetén a rendszer automatikusan aktiválja a környezetet a megnyitott projekten. Erről a funkcióról a vcpkg-környezet aktiválásáról a Visual Studio blogbejegyzésében olvashat bővebben.

  • Most már használhatja a Dev Containerst a C++-projektekhez. Erről a funkcióról a C++ Fejlesztői tárolók című blogbejegyzésünkben olvashat bővebben.

  • Az IntelliSense most már tiszteletben tartja az előre meghatározott fejlécek sorrendjét, ha az egyik közülük PCH. Korábban, amikor a PCH-t /Yu-on keresztül használták és /FI-en keresztül kényszerítették bele, az IntelliSense mindig először ezt dolgozta fel, mielőtt bármilyen más, /FI-on keresztül belefoglalt fejlécet. Ez a viselkedés nem egyezett meg az összeállítási folyamattal. Ezzel a módosítással /FI fejlécek feldolgozása a megadott sorrendben történik.

  • Eltávolították a belső előtagokat a CTest-nevekből a Test Explorerben.

  • Frissítettük a Visual Studióval szállított CMake verzióját a 3.24.1-es verzióra. A rendelkezésre álló részletekért nézze meg a CMake kiadási jegyzeteket.

  • Android SDK-frissítés:

    • A rendszer eltávolította az ant-szkripteket, így a felhasználók már nem látják az Ant-alapú sablonokat az Új projekt párbeszédpanelen. Ha segítségre van szüksége az Ant-sablonokról a Gradle-sablonokra való áttéréshez, olvassa el Az építési folyamatok migrálása Apache Ant-tól.
    • Új támogatás az NDK 23 és 24 használatával történő építkezéshez
    • Az NDK összetevő frissítése az LTS 23-ra
  • A ranges::min_element(), ranges::max_element()és ranges::minmax_element() vektorizált implementációi hozzáadva

  • Továbbra is nyomon követjük a C++ szabványosítás legújabb fejlesztéseinek alakulását. A C++23 funkciók támogatása a fordítási beállítások /std:c++latest használatával érhető el:

    • ranges::containsP2302R4,ranges::contains_subrange

    • P2499R0string_view Tartománykonstruktornak kell lenni explicit

    • P0849R8auto(x): bomlás-másolat a nyelvben

      (A fordító rész még nincs implementálva. A kódtárrész C++20 módban lett implementálva, amikor a Ranges-támogatás kezdeti implementálása megtörtént.)

    • P0881R7<stacktrace>

    • P2301R1pmr Alias hozzáadása std::stacktrace-hez

    • P1328R1constexpr type_info::operator==()

    • P2440R1ranges::iotaranges::shift_leftranges::shift_right

    • P2441R2views::join_with

  • Hozzáadott egy "Navigáció deklaráció/definíció létrehozása után" lehetőséget, amely lehetővé teszi a Deklaráció/definíció létrehozása funkció navigációs viselkedésének kiválasztását. Választhat a betekintés (alapértelmezett) vagy a dokumentum megnyitása, illetve a navigáció nélkül.

  • A Visual Studio Arm64-buildjei mostantól a CMake és a Ninja Arm64-verzióit kötik össze.

  • A CMake Presets 4-es verziójának támogatása hozzáadva. A rendelkezésre álló részletekért nézze meg a CMake kiadási jegyzeteket.

  • A Connection Managert használó távoli rendszerkapcsolatok mostantól támogatják az SSH ProxyJump. A ProxyJump egy SSH-gazdagép egy másik SSH-gazdagépen keresztüli elérésére szolgál (például egy tűzfal mögötti gazdagép eléréséhez).

A C++ újdonságai a Visual Studio 17.3-es verziójában

Kiadva: 2022 augusztusában

További információ erről: Nézd
A C++-fejlesztők újdonságai C++ fejlesztései a 17.3-ban
A standard kódtár (STL) egyesített C++23 funkciói, a nyelvi munkacsoport (LWG) problémáinak megoldása, a teljesítmény javítása, a jobb működés és a kijavított hibák STL changelog 17.3
A Visual Studio 17.3 IDE új funkciói Visual Studio 2022 17.3-es verziójának kibocsátási megjegyzései
A C++ nyelvmegfelelőség fejlesztései a Visual Studio 2022 17.3-ban Visual Studio 2022-ben a C++ megfelelőség fejlesztései, viselkedésváltozásai és hibajavításai

A 17.3 új funkcióinak részleges listája:

  • Az Arm64EC eszközlánc már nem kísérletiként van megjelölve, és készen áll az éles használatra.
  • A Visual Studio Terminal mostantól SSH-ügyfélként is használható a tárolt SSH-kapcsolatokkal. A linuxos C++ eszközök telepítésével nyissa meg a Terminál eszközablakot. A terminál legördülő menüje megtelik a tárolt kapcsolatokkal. Amikor kiválaszt egy kapcsolatot, megnyílik egy új terminálablak a Visual Studióban, amely egy pszeudo-terminált jelenít meg a távoli rendszeren. A vezérlőkarakterek, a színek és a kurzor helyzetfelismerése mind támogatott.
  • A Visual Studio mostantól hozzáadhat Unreal Engine-osztálysablonokat az UE-projektekhez. A funkció kipróbálásához győződjön meg arról, hogy a Unreal Engine IDE-támogatás ki van választva a Visual Studio Installer C++-os játékfejlesztés munkaterhelésében. Amikor UE-projekten dolgozik, kattintson a jobb gombbal a projektre vagy egy mappára/szűrőre, és válassza a >UE osztályhozzáadása lehetőséget.
  • Ugrás a definícióra ekkor megjegyzi az előző aláírást, és ennek megfelelően navigál, ha egy jobb egyezés nem érhető el (például miután manuálisan módosította az egyik pár aláírását). A Go To All válaszképessége javul. Korábban az eredmények a gépelés leállítása után jelentek meg. Az új felületen az eredmények beírás közben jelennek meg.
  • A enum típusú kiegészítést igénylő környezetekben (például enum változókhoz, esetcímkékhez, enum típus visszaadásához stb.) az automatikus kiegészítési lista most már csak az egyező enumerátorokra és a kapcsolódó szerkezetekre lesz szűrve.
  • NuGet PackageReference-támogatás hozzáadva a .NET Core-t célzó C++/CLI MSBuild projektekhez. Ez a módosítás feloldotta a vegyes kódbázisok .NET Core bevezetésének letiltását. Ez a támogatás nem működik más C++ projekttípusokhoz vagy a .NET-keretrendszert célzó C++ projekttípusokhoz. A PackageReference támogatását nem tervezi más C++ forgatókönyvekre kiterjeszteni. A csapat a nem MSBuild-forgatókönyvekhez készült vcpkg-t magában foglaló különálló szolgáltatásokon dolgozik, és nagyobb funkcionalitást biztosít.
  • Hozzáadott egy soros monitorozási ablakot a beágyazott fejlesztéshez, amely Hibakeresési>Windows>Soros figyelőkeresztül érhető el.
  • A C++ indexelés javítása ~66% mértékben, a 17,2-es verzióhoz képest.
  • Frissítettük a Visual Studióval szállított CMake verzióját a 3.23-ra. A részletekért, hogy mi érhető el, lásd a CMake 3.23 kibocsátási megjegyzéseit.
  • Frissítette a Visual Studióval szállított LLVM-eszközök verzióit a v14-re. A rendelkezésre álló információkról a LLVM és Clang kibocsátási megjegyzéseiben olvashat.
  • Frissítettük az egymás melletti Dev 16.11 C++ Eszközkészletet a 14.29.30145.00-s verzióra. A Dev 16.11 C++ Toolset legújabb verziója fontos hibajavításokat tartalmaz, beleértve az összes fennmaradó C++20 hibajelentés javítását is. További információ a hibajavításokról, beleértve a C++20 hibajelentéseket a Dev 16.11-ben, lásd Visual Studio 2019 16.11.14-es kiadási megjegyzéseit.
  • A C++ modulok szerkesztői felületének különböző fejlesztései. Folyamatosan dolgozunk a felhasználói élmény minőségének javításán, de javasoljuk, hogy próbálja ki őket a 17.3-ban. A fennmaradó problémák jelentése fejlesztői közösségkeresztül.

A C++ újdonságai a Visual Studio 17.2-es verziójában

Kiadás dátuma: 2022. május

További információ erről: Nézd
A C++-fejlesztők újdonságai Visual Studio 2022 17.2 már elérhető
Standard library (STL) egyesített C++20 hibajelentések, C++23 funkciók, Nyelvi munkacsoport (LWG) problémák megoldása, teljesítménybeli fejlesztések, továbbfejlesztett viselkedés és kijavított hibák STL changelog 17.2
A Visual Studio 17.2 IDE új funkciói Visual Studio 2022 17.2-es verzió kibocsátási megjegyzései
A C++ nyelvmegfelelőség fejlesztései a Visual Studio 2022 17.2-ben Visual Studio 2022-ben a C++ megfelelőség fejlesztései, viselkedésváltozásai és hibajavításai

A 17.2 új funkcióinak részleges listája:

  • Hozzáadva a C++23 „deducing” funkció fordítói támogatása, amely a this lehetőség alatt érhető el.
  • IntelliSense-támogatást adtunk hozzá a C++23 funkciókhoz: deducing this és if consteval.
  • Beágyazott paraméternév és típussúgó támogatása, amely az Alt+F1 billentyűkombináció lenyomásával vagy a Ctrl kétszer lenyomásávalérhető el. Ez a viselkedés a Eszközök > Beállítások > Szövegszerkesztők > C/C++ > IntelliSensealatt testre szabható.
  • Hozzáadták a C++20 modulok kísérleti támogatását a CMake-projektekhez. Ez a támogatás jelenleg csak a Visual Studio (MSBuild) generátorral érhető el.
  • A 17.1-ben bevezettük a perifériaregisztrálást és az RTOS-nézeteket beágyazott fejlesztők számára. A 17.2-ben a használhatósági fejlesztésekkel tovább fejlesztjük ezen nézetek képességeit:
    • Az RTOS-eszköz ablaka alapértelmezés szerint el van rejtve. Megakadályozza egy eszközablak megjelenítését olyan hibaüzenetekkel, amelyek nem relevánsak, ha nem használ RTOS-t.
    • Amikor duplán kattint egy RTOS-objektumra az eszközablakban, az hozzáad egy órát az objektumhoz.
    • Amikor kiválasztja a veremmutató kezdő és záró értékeit az RTOS eszközablakban, az megnyílik a memóriaablakban.
    • A hívásverem ablakához hozzáadta az eszközcélok szálfelismerését.
    • A felhasználók mostantól kiválaszthatnak egy gombostű ikont a perifériák, a regiszterek vagy a mezők mellett, hogy rögzítsék azokat a Perifériák Nézet tetejére.
  • Hozzáadták a fennmaradó C++20 hibajelentések (más néven backportok) implementációit. Mostantól minden C++20 funkció elérhető a /std:c++20 lehetőség alatt. A megvalósított hibaáthozatalokról további információkat a Microsoft/STL GitHub tároló VS 2022 változásnaplójában, valamint az MSVC STL Completes /std:c++20 blogbejegyzésében talál.
  • A /std:c++latest lehetőséggel elérhető C++23 Kódtár különböző funkcióit is hozzáadtuk. További információ az új funkciókról: STL-adattár változásnaplója.
  • A kezdeti C++ indexelés teljesítménye a belefoglalási gráf mélységétől függően legfeljebb 20%-kal javult.

A C++ újdonságai a Visual Studio 17.1-es verziójában

2022. februárban kiadva

További információ erről: Nézd
A C++-fejlesztők újdonságai Visual Studio 2022 17.1 már elérhető!
A standard kódtár (STL) egyesített C++23 funkciói, a nyelvi munkacsoport (LWG) problémáinak megoldása, a teljesítmény javítása, a jobb működés és a kijavított hibák STL changelog 17.1
A Visual Studio 17.1 IDE új funkciói Visual Studio 2022 17.1-es verziójának kibocsátási megjegyzései
A C++ nyelvmegfelelőség fejlesztései a Visual Studio 2022 17.1-ben Visual Studio 2022-ben a C++ megfelelőség fejlesztései, viselkedésváltozásai és hibajavításai

A 17.1 új funkcióinak részleges listája:

  • Új Konfigurációs Előbeállítás sablon került hozzáadásra a CMake-projektek konfigurálásához és létrehozásához egy távoli macOS rendszeren CMakePresets.json. A CMake-célokat egy távoli macOS rendszeren is elindíthatja, majd távolról is hibakeresést végezhet a GDB vagy LLDB által támogatott Visual Studio hibakeresőben.
  • Mostantól az LLDB-vel vagy GDB-vel is hibakeresést végezhet egy távoli macOS-rendszeren a Visual Studióban.
  • A Visual Studióval szállított Clang és LLVM verziói a 13-ra frissülnek.
  • A Visual Studio CMake-integrációja csak akkor aktív, ha a megnyitott munkaterület gyökerében létezik egy CMakeLists.txt. Ha egy CMakeLists.txt a munkaterület egy másik szintjén van azonosítva, a rendszer kérni fogja, hogy aktiválja a Visual Studio CMake-integrációját egy értesítéssel.
  • Új nézetek, amelyek lehetővé teszik a mikrovezérlők perifériaregisztereinek vizsgálatát és interakcióját, valamint a valós idejű operációs rendszerek (RTOS) objektumainak kezelését, elérhetők a Hibakeresési>Windows>Embedded Registers keresztül.
  • Új szálnézetet adott az RTOS-projektekhez, amely a hibakeresési>ablakokon keresztül, a Windows>RTOS-objektumokérhető el. További információ: Embedded Software Development in Visual Studio.

A C++ újdonságai a Visual Studio 17.0-s verziójában

Kiadva 2021. nov.

További információ erről: Nézd
A Visual Studio 17.0 IDE új funkciói Visual Studio 2022 17.0-s verziójának kibocsátási megjegyzései
Standard kódtár (STL) egyesített C+++23 és C++26 funkciók, C++20 hibajelentések, nyelvi munkacsoport (LWG) problémák megoldása, teljesítményjavítások, továbbfejlesztett viselkedés és kijavított hibák STL Változásnapló 17.0
A C++ nyelvmegfelelőség fejlesztései a Visual Studio 2022 17.0-ban Visual Studio 2022 17.10- C++ kompatibilitási fejlesztései, viselkedésbeli változásai és hibajavításai

A Visual Studio 2022 17.0-s verziójának néhány új funkciójának áttekintése:

  • A Visual Studio IDE( devenv.exe) mostantól natív, 64 bites alkalmazás.
  • Az MSVC-eszközkészlet mostantól alapértelmezés szerint SHA-256-forráskivonatot használ a hibakeresési rekordokban. Korábban az eszközkészlet alapértelmezés szerint az MD5-öt használta a forráskivonat-készítéshez.
  • A v143 buildelési eszközök mostantól elérhetők a Visual Studio telepítőjén és a önálló buildelési eszközökben.

Gyakori újratöltés natív C++-hoz

  • C++ gyors újratöltése lehetővé teszi, hogy számos típusú kódrészletet szerkesszen a futó alkalmazásban, és alkalmazza őket anélkül, hogy szüneteltetnie kellene az alkalmazás végrehajtását egy törésponttal.

A Visual Studio 2022-ben, amikor elindítja az alkalmazást a hibakeresőben, a Gyakori betöltés gombbal módosíthatja az alkalmazást, amíg az még fut. Ezt az élményt a natív "Edit and Continue" funkció működteti. A támogatott módosításokról további információt a Szerkesztés és folytatás (C++)című témakörben talál.

  • A Hot Reload támogatja a CMake és a Megnyitott mappák projekteket.

WSL2-támogatás

  • Mostantól Natív módon is létrehozhat és hibakeresést végezhet a WSL2-n SSH-kapcsolat létrehozása nélkül. A platformfüggetlen CMake-projektek és az MSBuild-alapú Linux-projektek egyaránt támogatottak.

Továbbfejlesztett CMake-támogatás

  • Frissítette a Visual Studióval szállított CMake verzióját a 3.21-es verzióra. Az ebben a verzióban elérhető újdonságokról további részletek a CMake 3.21 kibocsátási megjegyzéseiben találhatók.

  • A CMake áttekintő lapjai CMakePresets.jsontámogatása érdekében frissülnek.

  • Most már konfigurálhatja és létrehozhatja CMake-projektjeit a CMake 3.21 és CMakePresets.json v3 használatával.

  • A Visual Studio mostantól támogatja a buildPresets.targetsCMakePresets.json lehetőségét. Ez a beállítás lehetővé teszi, hogy a CMake-projektben a célok egy részhalmazát hozza létre.

  • A CMake-projektek Projekt menüje egyszerűbb, és a "Gyorsítótár törlése és újrakonfigurálása" és a "Gyorsítótár megtekintése" lehetőséget teszi elérhetővé.

  • Implementálták a /scanDependencies fordító opciót a CMake-projektek C++20 modulfüggőségeinek listázására, ahogyan a P1689R5leírja. Ez egy lépés a modulokon alapuló projektek CMake-nal való kiépítésének támogatása felé, és dolgozunk a támogatás későbbi kiadásokban való megvalósításán.

Standard könyvtár javításai

A Standard Könyvtár (STL) kiemelt fejlesztései itt láthatók. Az új funkciók, módosítások, hibajavítások és teljesítményjavítások átfogó listáját az STL-csapat Changelogcímű témakörben találja.

  • A hibakeresési vizualizációk a következő típusok megjelenítésének javítása érdekében lettek hozzáadva: source_location, bind_front(), u8string (és iterátorai), default_sentinel_t, unreachable_sentinel_t, ranges::empty_view, ranges::single_view, ranges::iota_view (és iterátora/sentinel), ranges::ref_view, thread, thread::id, jthreadés filesystem::path
  • [[nodiscard]] hozzáadva a stoi() függvénycsaládhoz a <string>-ban, valamint a <locale> különböző függvényeihez, például a collate tagfüggvényekhez, has_facet(), és a isalnum() és tolower() családokhoz.
  • P0980R1 Készült std::stringconstexpr a VS 2019 16.10-ben. Most már támogatott a Clang.
  • P1004R2 Készült std::vectorconstexpr VS 2019 16.10-ban. Most már támogatott a Clang.

kiemelt C++23 funkciók

  • P1048R1 Hozzáadott is_scoped_enum, amely a C++ Standard kódtár új tulajdonsága, amely észleli, hogy egy típus hatóköralapú enumerálás-e.
  • out_ptr()P1132R7,inout_ptr()
  • P1679R3contains()basic_string és basic_string_view
  • P1682R3to_underlying() az enumerálások számára
  • P2162R2 Öröklés engedélyezése std::variant-ből
  • P2166R1 Tiltsa a basic_string és basic_string_viewnullptr-ból történő létrehozását. Ez a változás egy forrástörő változás. A futtatókörnyezetben korábban nem definiált működésű kódot a rendszer fordítóhibákkal utasítja el.
  • P2186R2 Eltávolított szemétgyűjtési támogatás. Ez a módosítás eltávolítja declare_reachable, undeclare_reachable, declare_no_pointers, undeclare_no_pointers, get_pointer_safety. Korábban ezek a függvények nem voltak hatással.

Kiemelt teljesítménybeli fejlesztések

  • <format> észleli, amikor egy back_insert_iterator vagy basic_stringszámára vector-re ír, és gyorsabb hívást indít a insert() felé a tároló end()-nél.
  • Javítottuk a std::find() és a std::count() teljesítményét vector<bool> 19x és 26x (idő, nem százalék) esetében.
  • Javítottuk a std::count() teljesítményét a vector<bool> számára.
  • std::byte most ugyanazzal a teljesítménnyel rendelkezik, mint unsigned charreverse() és variant::swap()

A Clang és az LLVM támogatása

  • A Visual Studióval szállított LLVM-eszközök LLVM 12-re frissülnek. További információért tekintse meg a LLVM kiadási megjegyzéseket.

  • A Clang-cl támogatását az LLVM 12-re frissítették.

  • Mostantól az LLDB használatával hibakeresést végezhet egy távoli rendszeren futó folyamatokban a Visual Studióból.

C++ AMP már nem támogatott

  • A C++ AMP fejléceket elavultnak nyilvánították. Egy C++ projektben a <amp.h> használata építési hibákhoz vezet. A hibák elnémításához határozza meg a _SILENCE_AMP_DEPRECATION_WARNINGS-t. További információ: a(z) AMP megszüntetéssel kapcsolatos hivatkozásaink.

IntelliSense fejlesztések

  • Továbbfejlesztettük a C++ IntelliSense-t, amikor navigációt és szintaxiskiemelést biztosítunk az importált modulok és fejlécegységek típusaihoz. Az IntelliSense egy aktív befektetési terület számunkra. Segítsen nekünk javítani: Ossza meg visszajelzését a Fejlesztői Közösségben a Súgó>Visszajelzés küldésecímkékkel.
  • Javítottuk a C++ IntelliSense teljesítményét a gyorsítótárazott fejléchasználat és a szimbólumadatbázis-hozzáférés optimalizálásával, így jobb betöltési idő érhető el a kódban.
  • A C++-hoz készült IntelliSense Code Linter alapértelmezés szerint be van kapcsolva, és azonnali, gépelés közbeni javaslatokat nyújt, és kijavítja a gyakori kódhibákra vonatkozó javaslatokat.
  • A CMake-projektekhez készült C++ IntelliSense mostantól akkor működik, ha egy előre beállított megjelenítési nevet használ.

C++ számítási feladatok frissítései

  • NDK r21 LTS-re frissítve a C++ Mobilfejlesztési feladatkörben.
  • A C++ számítási feladattal rendelkező játékfejlesztés mostantól telepíti a legújabb Unreal Engine-t a Visual Studio 2022 támogatásával.

Kódelemzési fejlesztések

  • A kódelemzés mostantól kikényszeríti, hogy az _Check_return_ vagy _Must_inspect_result_ jegyzettel ellátott függvények értékeit ellenőrizni kell.
  • A nullmutató-dereferencia-észlelés javul a kódelemzési eszközünkben.
  • A kódelemzéshez gsl::not_null támogatása hozzáadva.
  • A Libfuzzer támogatása a /fsanitize=fuzzer fordító beállítás alatt.

Kibocsátási megjegyzések régebbi verziókhoz

A régebbi C++ verziók kibocsátási megjegyzései is elérhetők:

Ismert problémák

C++ IntelliSense

A Visual Studio 2022-ben a C++ nyitott kérdéseiről és elérhető kerülőutakról további információkat a C++ fejlesztői közösség problémák listájábantalálható.

Visszajelzések és javaslatok

Szeretnénk hallani tőled! Használhatja a Visszajelzés küldése ikont a telepítő vagy a Visual Studio IDE jobb felső sarkában a Probléma jelentéséhez vagy Funkció javaslatához, vagy Súgó>. A problémák nyomon követéséhez használja Visual Studio Fejlesztői közösség, ahol megjegyzéseket fűzhet hozzá, vagy megoldásokat találhat. Az Live Chat támogatásikeresztül is kérhet ingyenes telepítési segítséget.

Blogok

A microsoftos fejlesztői blogok webhelyen elérhető elemzések és javaslatok segítségével naprakészen tarthatja az összes új kiadást. A blogok széles körű funkciókról szóló mélybe merülési bejegyzéseket tartalmaznak. A C++ csapat blog és a Visual Studio Blog különösen érdekesek.