Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.
- További információ a Visual Studio újdonságairól: A Visual Studio 2022 újdonságai.
- A verzió build dátumairól további információt a Visual Studio 2022 kiadási előzményeibentalál.
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++latestvagy/std:c++23preview):static operator()static operator[]-
if consteval. Különböző kód futtatását teszi lehetővé attól függően, hogy az utasítás fordításkor vagy futtatáskor van-e végrehajtva.
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:
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:
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.txtvagy más CMake-szkriptfájlokba, az IntelliSense a választható modulok listáját tartalmazza:
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_tszó 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
fibfüggvény egy koroutin. Aco_yieldutasítás végrehajtásakor a rendszer felfüggeszti afib, és visszaadja az értéket a hívónak. Afibkorutin 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éschrono_literalselemeket 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 asystem_clock, vagy a felhasználó által definiált literálokat, például a1729ms, vegye fel a<chrono>.Továbbfejlesztettük
bitsetkonstruktorok vektorizált implementációit sztringekből,basic_string::find_last_of(),remove(),ranges::remove, valamint azminmax_element()ésminmax()algoritmuscsaládokból.A következő vektorizált implementációk hozzáadva:
-
find_end()ésranges::find_end1 bájtos és 2 bájtos elemekhez. -
basic_string::find()ésbasic_string::rfind()egy részsztringhez. -
basic_string::rfind()egyetlen karakterhez.
-
Egyesített C++23 hibajelentések:
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:
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 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:
Í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:
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éspriority_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]).
- 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:
-
Játékfejlesztés C++-ben
- Közvetlenül nyissa meg az Unreal Engine-projekteket a Visual Studióban anélkül, hogy létre kellene hoznia egy Visual Studio-megoldásfájlt, amely az Unreal Engine-projektet burkolja. További információ: Unreal Engine-projektek használata a Visual Studio.
- Megadhatja azokat a parancssori argumentumokat, amelyek közvetlenül az eszköztárról történő hibakereséskor lesznek átadva. További információ: Az Unreal Engine-projektek parancssori argumentumainak beállítása.
-
É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 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 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 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:
-
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:
Ha aA problémát okozó kód a következő: for (auto it = h.animals_.begin(); it <= h.animals_.end(); it++).
itváltozónál a Copilot kérése ikonra kattint, az elmondja, miért van<NULL>:
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:
Ha a Copilot kérdésére kattint, a következő hibaüzenet jelenik meg: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.
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ésmove_iterator. - A hibakereső mostantól visszatérési értékeket jelenít meg inline módon:
- Új hibakeresési vizualizációk
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 astd::pair, valamint astd::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()ésranges::find_first_ofalgoritmusokat, 8 bites és 16 bites elemekhez,mismatch(),ranges::mismatch,count(),ranges::count,find(),ranges::find,ranges::find_lastésranges::iotaesetében.
- A formázott kimeneti implementáció mostantól tartalmazza a
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:
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.txtfá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 aCMakeLists.txtfájlban, majd lépjen a Project>pontra, hogy CMake hibakereséssel konfigurálja a gyorsítótárat.
- Mostantól hibakeresheti a CMake szkripteket és
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:
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.
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 olyanstd::tupleesetén, amely sablonargumentumai között többT-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::tonem 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)'
- Javított diagnosztika a
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::formatjobban megfelel az egész számok esetében már meglévőknek. Továbbfejlesztettük astd::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.
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:
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.
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:
-
#includediagnosztika, amely részletes elemzést nyújt a#includeirá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#includefölött hányszor hivatkozik a kód az adott#includefá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>>.
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.
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 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 astd::spanformattable,range_format,format_kindésset_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. Emellettformat()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éhezconst-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
#includeirá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:clatesthozzá 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ésstd::forward_likemostantó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++20vagy/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:c11atomicsopcióval/std:c11mó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:
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
/Odalatt, ha a felhasználó átadja a/Zc:nrvoopciót, vagy ha a/std:c++20vagy ú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/FIfejlé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()ésranges::minmax_element()vektorizált implementációi hozzáadvaTová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++latesthasználatával érhető el:P2499R0
string_viewTartománykonstruktornak kell lenniexplicitP0849R8
auto(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>P2301R1
pmrAlias hozzáadásastd::stacktrace-hezP1328R1
constexpr type_info::operator==()P2440R1
ranges::iotaranges::shift_leftranges::shift_rightP2441R2
views::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
enumtípusú kiegészítést igénylő környezetekben (példáulenumváltozókhoz, esetcímkékhez,enumtí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
thislehetőség alatt érhető el. - IntelliSense-támogatást adtunk hozzá a C++23 funkciókhoz: deducing
thisésif 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++20lehető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++20blogbejegyzésében talál. - A
/std:c++latestlehető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ésLLVMverzió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 egyCMakeLists.txta 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.jsonv3 használatával.A Visual Studio mostantól támogatja a
buildPresets.targetsCMakePresets.jsonlehető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
/scanDependenciesfordí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ésfilesystem::path -
[[nodiscard]]hozzáadva astoi()függvénycsaládhoz a<string>-ban, valamint a<locale>különböző függvényeihez, például acollatetagfüggvényekhez,has_facet(), és aisalnum()éstolower()családokhoz. -
P0980R1 Készült
std::stringconstexpra VS 2019 16.10-ben. Most már támogatott a Clang. -
P1004R2 Készült
std::vectorconstexprVS 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() -
P1679R3
contains()basic_stringésbasic_string_view -
P1682R3
to_underlying()az enumerálások számára -
P2162R2 Öröklés engedélyezése
std::variant-ből -
P2166R1 Tiltsa a
basic_stringésbasic_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 egyback_insert_iteratorvagybasic_stringszámáravector-re ír, és gyorsabb hívást indít ainsert()felé a tárolóend()-nél. - Javítottuk a
std::find()és astd::count()teljesítményétvector<bool>19x és 26x (idő, nem százalék) esetében. - Javítottuk a
std::count()teljesítményét avector<bool>számára. -
std::bytemost ugyanazzal a teljesítménnyel rendelkezik, mintunsigned charreverse()ésvariant::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_nulltámogatása hozzáadva. - A Libfuzzer támogatása a
/fsanitize=fuzzerfordí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:
- A Visual Studio 2019 C++ újdonságairól a A Visual Studio 2019 C++ újdonságaihivatkozáson talál további információt.
- A Visual Studio 2017 C++ újdonságairól szóló információkért lásd: A C++ újdonságai a Visual Studio 2017-ben.
- A korábbi verziók újdonságairól Visual C++ What's new 2003–2015című témakörben olvashat.
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.