Co nowego w języku C++ w programie Visual Studio 2022
Program Visual Studio 2022 oferuje wiele aktualizacji i poprawek kompilatora i narzędzi języka Microsoft C++. Środowisko IDE programu Visual Studio oferuje również znaczne ulepszenia wydajności i produktywności, a teraz działa natywnie jako aplikacja 64-bitowa.
- Aby uzyskać więcej informacji na temat nowości we wszystkich programach Visual Studio, zobacz Co nowego w programie Visual Studio 2022.
- Aby uzyskać informacje o nowościach w dokumentacji języka C++, zobacz Microsoft C++ docs: What's new (Dokumentacja języka Microsoft C++: co nowego).
- Aby uzyskać informacje na temat dat kompilacji wersji, zobacz Historia wersji programu Visual Studio 2022.
Co nowego w języku C++ w programie Visual Studio w wersji 17.11
Wydany w sierpniu 2024 r.
Aby uzyskać więcej informacji o | Zobacz |
---|---|
Co nowego dla deweloperów języka C++ | Co nowego dla deweloperów języka C++ w programie Visual Studio 2022 17.11 |
Funkcje biblioteki standardowej (STL), scalone funkcje C++26 i C++23, raporty o wadach języka C++20, rozwiązania problemów LWG, ulepszenia wydajności, ulepszone zachowanie i naprawione błędy | Dziennik zmian STL 17.11 |
Nowe funkcje w środowisku IDE programu Visual Studio 17.11 | Informacje o wersji 17.11 programu Visual Studio 2022 |
Ulepszenia zgodności języka C++ w programie Visual Studio 2022 17.11 | Ulepszenia zgodności języka C++, zmiany zachowania i poprawki błędów w programie Visual Studio 2022 17.11 |
Częściowa lista nowych funkcji:
Ulepszenia biblioteki standardowej:
- Sformatowana implementacja danych wyjściowych zawiera
std::range_formatter
teraz i formatery dla istd::pair
std::tuple
. - Dodano obsługę bez
std::println()
argumentów. Spowoduje to wyświetlenie pustego wiersza zgodnie z propozycją w P3142R0. - Ulepszona wektoryzacja dla kilku algorytmów, takich jak
replace_copy()
, ,find_first_of()
ranges::replace_copy_if
ranges::replace_copy
replace_copy_if()
, iranges::find_first_of
, dla elementów 8-bitowych i 16-bitowych,mismatch()
,ranges::find
ranges::mismatch
ranges::count
find()
count()
ranges::find_last
i .ranges::iota
- Sformatowana implementacja danych wyjściowych zawiera
Programowanie gier w języku C++
- Teraz można dodawać typowe szablony, moduły i wtyczki klasy Unreal Engine z poziomu programu Visual Studio. Aby uzyskać więcej informacji, zobacz Dodawanie klas, modułów i wtyczek aparatu Unreal Engine w programie Visual Studio.
- Nowy pasek narzędzi Unreal Engine zapewnia szybki dostęp do akcji związanych z aparatem Unreal Engine z poziomu programu Visual Studio. Pasek narzędzi umożliwia szybkie dołączanie do procesów Unreal Engine, ponowne skanowanie pamięci podręcznej strategii, szybkie uzyskiwanie dostępu do dziennika aparatu Unreal i szybkie uzyskiwanie dostępu do strony konfiguracji aparatu Unreal Engine dla programu Visual Studio. Aby uzyskać więcej informacji, zobacz Unreal Engine Toolbar (Unreal Engine Toolbar).
- Teraz możesz filtrować wyniki śledzenia według projektu. Ponadto wyniki w każdym wierszu pokazują ścieżkę względną i nazwę pliku zamiast pełnej ścieżki. Ulepszono również grupowanie wyników w widoku Dołączone pliki :
Widok Uwzględnione pliki zawiera nową kolumnę dla projektu. Kolumna Project (Projekt) jest zaznaczona, a wybrane są projekty, takie jak (Select All), CompilerIdC, OpenAL, common itd. Dołączone pliki są wymienione według ścieżki względnej i nazwy pliku i zgrupowane razem.
Debugowanie narzędzia CMake
- Teraz możesz debugować skrypty i
CMakeLists.txt
pliki narzędzia CMake w debugerze programu Visual Studio dla projektów CMake przeznaczonych dla systemu Linux za pośrednictwem Podsystem Windows dla systemu Linux (WSL) lub SSH. Aby uruchomić sesję debugowania narzędzia CMake w programie Visual Studio, ustaw punkt przerwania wCMakeLists.txt
pliku, a następnie przejdź do pozycji Project Configure Cache with CMake Debugging (Konfigurowanie pamięci podręcznej programu Project>przy użyciu debugowania narzędzia CMake).
- Teraz możesz debugować skrypty i
Copilot
- Po umieszczeniu wskaźnika myszy na symbolach w edytorze kodu kliknij przycisk Copilot Tell me more (Pokaż mi więcej ) w oknie dialogowym Szybkie informacje, aby dowiedzieć się więcej o danym symbolu:
Okno Szybkie informacje jest wyświetlane powyżej funkcji. Link Powiedz mi więcej jest wyróżniony.
- GitHub Copilot może generować sugestie nazewnictwa identyfikatorów (zmiennych, metod lub klas) na podstawie sposobu użycia identyfikatora i stylu kodu.
Okno dialogowe Zmienianie nazwy zawiera pole Nowa nazwa z listą rozwijaną zawierającą następujące opcje: text_color, font_color, display_color, console_color i menu_text_color.
Potrzebna jest aktywna subskrypcja narzędzia GitHub Copilot. Kliknij prawym przyciskiem myszy zmienną, której nazwę chcesz zmienić, a następnie wybierz polecenie Zmień nazwę (
Ctrl+R
,Ctrl+R
). Wybierz ikonę GitHub Copilot sparkle, aby wygenerować sugestie dotyczące nazewnictwa.Debugowanie
- Warunkowe punkty przerwania w języku C++ są znacznie szybsze.
Ulepszenia diagnostyki
- Ulepszona diagnostyka podczas wywoływania
std::get<T>
elementustd::tuple
, które ma wiele wystąpieńT
w argumentach szablonu. MSVC używany do raportowania:
error C2338: static_assert failed: 'duplicate type T in get<T>(tuple)'
.
Teraz raportuje:
error C2338: static_assert failed: 'get<T>(tuple<Types...>&) requires T to occur exactly once in Types.(N4971 [tuple.elemm]/5)'
- Ulepszona diagnostyka, gdy
std::ranges::to
nie można skonstruować żądanego wyniku. MSVC używany do raportowania:
error C2338: static_assert failed: 'the program is ill-formed per N4950 [range.utility.conv.to]/2.3'
Teraz raportuje:
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)'
- Ulepszona diagnostyka podczas wywoływania
Co nowego w języku C++ w programie Visual Studio w wersji 17.10
Wydany w maju 2024 r.
Aby uzyskać więcej informacji o | Zobacz |
---|---|
Co nowego dla deweloperów języka C++ | Co nowego dla deweloperów języka C++ w programie Visual Studio 2022 17.10 |
Funkcje biblioteki standardowej (STL), scalone funkcje C++26 i C++23, raporty o wadach języka C++20, rozwiązania problemów LWG, ulepszenia wydajności, ulepszone zachowanie i naprawione błędy | Dziennik zmian STL 17.10 |
Nowe funkcje w środowisku IDE programu Visual Studio 17.10 | Informacje o wersji 17.10 programu Visual Studio 2022 |
Ulepszenia zgodności języka C++ w programie Visual Studio 2022 17.10 | Ulepszenia zgodności języka C++, zmiany zachowania i poprawki błędów w programie Visual Studio 2022 17.10 |
Częściowa lista nowych funkcji:
- Aktualizacja zestawu narzędzi MSVC: wersja zestawu narzędzi MSVC jest aktualizowana z wersji 19.39 do 19.40. Może to mieć wpływ na projekty, które mają założenia dotyczące wersji. Aby uzyskać więcej informacji na temat niektórych sposobów, w jaki będzie to miało wpływ na projekty, które zakładają, że wersje MSVC to wszystkie wersje 19.3X dla programu Visual Studio 2022, zobacz MSVC Toolset Minor Version Number 14.40 in VS 2022 v17.10 (Zestaw narzędzi MSVC w wersji 14.40 w programie VS 2022 w wersji 17.10).
- Ulepszenia biblioteki standardowej: biblioteka standardowa dodała obsługę wskaźników formatowania P2510R3, co powoduje wprowadzenie zestawu specyfikatorów formatu wskaźników w przypadku używania
std::format
większej liczby zgodnej z tymi, które już istnieją dla liczb całkowitych. Ulepszono wektoryzowane implementacje elementówstd::min_element
,std::ranges::min
i znajomych. - Szczegółowe informacje o kompilacji: teraz udostępnia informacje o tworzeniu wystąpienia szablonu. Zobacz Widok szablonów dla szczegółowych informacji o kompilacji w programie Visual Studio lub Czysty wirtualny język C++ — widok Szablony dla funkcji Build Insights w programie Visual Studio .
- Wtyczka Unreal Engine: istnieje nowa funkcja umożliwiająca uruchomienie wtyczki Unreal Engine w tle, co zmniejsza koszty uruchamiania. Jest to funkcja, która jest aktywowana za pomocą opcji>narzędzia>Unreal Engine.
- Nowe funkcje dla systemu Linux: zobacz Nowe funkcje programistyczne systemu Linux w programie Visual Studio.
- Obiekty docelowe narzędzia CMake: można teraz przypiąć elementy docelowe w widoku obiektów docelowych narzędzia CMake.
- Menedżer połączeń środowiska użytkownika: środowisko użytkownika zapewnia bardziej bezproblemowe środowisko podczas nawiązywania połączenia z systemami zdalnymi. Aby uzyskać więcej informacji, zobacz Ulepszenia użyteczności w programie Visual Studio Menedżer połączeń.
- Komentarze do żądania ściągnięcia: możesz teraz wyświetlać komentarze usług GitHub i Azure DevOps bezpośrednio w pliku roboczym. Włącz flagę funkcji, komentarze żądania ściągnięcia w obszarze Opcje>Funkcje wersji zapoznawczej środowiska>i wyewidencjonuj gałąź żądania ściągnięcia, aby rozpocząć pracę.
- Zawartość wygenerowana przez sztuczną inteligencję: Narzędzie GitHub Copilot może teraz wersję roboczą opisów żądań ściągnięcia. Wymaga aktywnej subskrypcji narzędzia GitHub Copilot. Wypróbuj tę treść, klikając ikonę Dodaj opis żądania ściągnięcia wygenerowaną przez sztuczną inteligencję w oknie Tworzenie żądania ściągnięcia.
- Podgląd obrazu: umieść kursor nad ścieżką obrazu, aby wyświetlić podgląd ze szczegółami rozmiaru. Rozmiar jest ograniczony do 500 pikseli szerokości i wysokiej.
Wskaźnik myszy znajduje się na linii std::filesystem::p ath vs_logo_path = ".. /images/vs_logo.png". Poniżej pojawi się podgląd logo programu Visual Studio oraz informacje o rozmiarze 251 x 500 pikseli i 13,65 KB.
- Tworzenie punktu przerwania/punktu śledzenia: teraz można tworzyć warunkowe punkty przerwania lub punkty śledzenia bezpośrednio z wyrażeń w kodzie źródłowym z menu prawym przyciskiem myszy. Działa to na nazwach właściwości lub polach i wartościach z autos, ustawień lokalnych, okien kontrolnych lub etykietek danych.
- Okno dialogowe Dołączanie do procesu: funkcjonalność udostępniona przez okno dialogowe Dołączanie do procesu jest bardziej przyjazna dla użytkownika. Teraz można łatwo przełączać się między widokami drzewa i list, organizować procesy lepiej za pomocą zwijanych sekcji i wybierać typy kodu z uproszczonym polem kombi. Ponadto funkcja "Wybieranie/śledzenie okna" jest teraz łatwiejsza, umożliwiając śledzenie dwukierunkowe: wybieranie procesu wyróżnia okno i kliknięcie okna wybiera jego proces.
- Integracja z rozwiązaniem GitHub Copilot: rozszerzenia GitHub Copilot i Copilot Chat są teraz ujednolicone i teraz dostarczane bezpośrednio w programie Visual Studio. Aby go zainstalować, zainstaluj składnik GitHub Copilot w Instalator programu Visual Studio:
Interfejs Narzędzia GitHub Copilot znajduje się w prawym górnym rogu programu Visual Studio. Aby go używać, potrzebujesz aktywnej subskrypcji usługi GitHub Copilot.
Przycisk GitHub Copilot jest wyświetlany w prawym górnym rogu programu Visual Studio. Dostępne są opcje otwierania okna czatu, ustawień narzędzia GitHub Copilot, dowiedz się więcej i zarządzania subskrypcją copilot.
Co nowego w języku C++ w programie Visual Studio w wersji 17.9
Wydany w lutym 2024 r.
Aby uzyskać więcej informacji o | Zobacz |
---|---|
Co nowego dla deweloperów języka C++ | Co nowego dla deweloperów języka C++ w programie Visual Studio 2022 17.9 |
Funkcje biblioteki standardowej (STL) scalone w języku C++23, ulepszenia wydajności, ulepszone zachowanie, rozwiązania problemów z lwg i naprawione błędy | Dziennik zmian STL 17.9 |
Nowe funkcje w środowisku IDE programu Visual Studio 17.9 | Informacje o wersji 17.9 programu Visual Studio 2022 |
Ulepszenia zgodności języka C++ w programie Visual Studio 2022 17.9 | Ulepszenia zgodności języka C++, zmiany zachowania i poprawki błędów w programie Visual Studio 2022 |
Podsumowanie aktualizacji zaplecza języka C++ | Aktualizacje zaplecza MSVC od wersji 17.3 programu Visual Studio 2022 |
Częściowa lista nowych funkcji:
#include
diagnostyka, która zapewnia szczegółową analizę#include
dyrektyw. Aktywuj tę funkcję,#include
klikając prawym przyciskiem myszy i wybierając dyrektywy>#include Włącz diagnostykę dyrektywy #include. Nad każdym z nich#include
znajduje się liczba odwołań do tego#include
pliku. Kliknij link odwołania, aby przejść do lokalizacji, w której kod używa czegoś z tego pliku nagłówka. Aby wyświetlić czas kompilacji#include
dyrektyw, uruchom polecenie Build Insights, przechodząc do sekcji Kompilowanie>szczegółowych informacji o kompilacji w kompilacji rozwiązania.>Powyżej pliku #include znajduje się link **odwołanie** i wiele odwołań do tego pliku dołączania #(w tym przypadku 1). Czas kompilacji jest również wymieniony (w tym przypadku mniej niż 1/2 sekundy).
- Wizualizacja układu pamięci przedstawiająca sposób rozmieszczania pamięci dla klas, struktur i związków. Umieść kursor na typie i wybierz link Układ pamięci w szybkich informacjach , aby otworzyć dedykowane okno z układem pamięci wybranego typu. Umieszczenie kursora na poszczególnych typach danych w tym oknie zawiera szczegółowe informacje o ich rozmiarze i przesunięciu w obrębie typu.
W oknie układu pamięci jest wyświetlana zawartość klasy Snake. Przedstawia przesunięcia pamięci różnych pól klasy, takich jak klasy punktów dla lokalizacji głowy i treści, wyniku itd.
- Teraz możesz określić własny niestandardowy plik wykonywalny narzędzia CMake. Ta funkcja jest przydatna, jeśli chcesz użyć określonej wersji narzędzia CMake, która nie jest dostarczana z programem Visual Studio. Przejdź do pozycji Opcje narzędzi>i wybierz pozycję Ogólne narzędzia CMake.> Wybierz pozycję Włącz niestandardowy plik wykonywalny narzędzia CMake i określ ścieżkę katalogu pliku wykonywalnego narzędzia CMake.
Okno dialogowe opcji narzędzia CMake z wyróżnioną opcją "Włącz niestandardowy plik wykonywalny narzędzia CMake" i pole "Katalog wykonywalny CMake".
- Ulepszona funkcja IntelliSense dla projektów aparatu Unreal Engine.
- Ulepszona obsługa języka C++23:
std::format
iformattable
std::span
,range_format
format_kind
, iset_debug_format()
w ramach P2286R8 zakresów<mdspan>
formatowania na P0009R18 i kolejnych zmian sformułowań, które zostały zastosowane do standardu C++23.format()
Ponadto można formatować wskaźniki na P2510R3.
Co nowego w języku C++ w programie Visual Studio w wersji 17.8
Wydany w listopadzie 2023 r.
Aby uzyskać więcej informacji o | Zobacz |
---|---|
Co nowego dla deweloperów języka C++ | Co nowego dla deweloperów języka C++ w programie Visual Studio 2022 17.8 |
Biblioteka Standardowa (STL) scaliła funkcje języka C++26, C++23, rozszerzenia C++20, rozwiązania problemów LWG, ulepszenia wydajności, ulepszone zachowanie i naprawione błędy | Dziennik zmian STL 17.8 |
Nowe funkcje w środowisku IDE programu Visual Studio 17.8 | Informacje o wersji 17.8 programu Visual Studio 2022 |
Ulepszenia zgodności języka C++ w programie Visual Studio 2022 17.8 | Ulepszenia zgodności języka C++, zmiany zachowania i poprawki błędów w programie Visual Studio 2022 |
Omówienie ulepszeń języka C++ w programach Visual Studio, VS Code i vcpkg w 2023 r. | Rok ulepszeń języka C++ |
Częściowa lista nowych funkcji:
- Diagnostyka ustrukturyzowana języka C++ w oknie Dane wyjściowe i nowe okno szczegółów problemu, które zawiera więcej informacji o błędzie. Aby uzyskać więcej informacji, zobacz Ustrukturyzowane dane wyjściowe SARIF i okno szczegóły problemu.
- Funkcja, która umożliwia wizualizowanie rozmiaru i wyrównania klas, struktur, związków, typów bazowych lub wyliczenia jeszcze przed skompilowaniem kodu. Zatrzymaj wskaźnik myszy na identyfikatorze i wyświetli informacje o rozmiarze i wyrównaniu.
- Funkcja sugerująca, kiedy oznaczyć funkcje
const
składowe, ponieważ nie modyfikują stanu obiektu. Umieść kursor na funkcji składowej i kliknij ikonę żarówki, aby oznaczyć funkcję jakoconst
. - Program Visual Studio wyświetla teraz monit o oznaczenie funkcji globalnych jako statycznych za pomocą ikony śrubokręta wyświetlanej według nazwy funkcji. Kliknij ikonę śrubokręta, aby oznaczyć funkcję jako statyczną.
- Nieużywane dyrektywy #include są wygaszone w edytorze. Możesz umieścić wskaźnik myszy na wygaszonej dołączeniu i użyć menu żarówki, aby usunąć, które zawierają lub wszystkie nieużywane dołączane. Można również dodawać
#include
dyrektywy dla jednostek, które są pośrednio dołączane za pośrednictwem innych nagłówków. Aby uzyskać więcej informacji, zobacz Czyszczenie C/C++ w programie Visual Studio. - Więcej obsługi aparatu Unreal Engine:
- Adapter testowy unreal engine umożliwia odnajdywanie, uruchamianie i debugowanie testów aparatu Unreal oraz zarządzanie nimi bez opuszczania środowiska IDE programu Visual Studio.
- Za pomocą fragmentów kodu unreal engine można znaleźć typowe konstrukcje Unreal Engine jako fragmenty na liście elementów członkowskich.
- Usługa Build Insights jest teraz zintegrowana z programem Visual Studio 2022 i współpracuje z projektami MSBuild i CMake przy użyciu MSVC. Teraz możesz wyświetlić dodatkowe informacje o kompilacji funkcji, takie jak czas kompilowania i liczba elementów ForceInlines oraz wpływ plików nagłówków na czas kompilacji. Aby uzyskać więcej informacji, zobacz Samouczek: rozwiązywanie problemów z funkcją tworzenia w czasie kompilacji i Samouczek: rozwiązywanie problemów z wpływem pliku nagłówka na czas kompilacji.
- Zdalna obsługa testów jednostkowych systemu Linux umożliwia teraz uruchamianie testów CTest i GTest na zdalnych maszynach z systemem Linux z Poziomu Eksploratora testów programu Visual Studio, podobnie jak testy lokalne.
Co nowego w języku C++ w programie Visual Studio w wersji 17.7
Wydany w sierpniu 2023 r.
Aby uzyskać więcej informacji o | Zobacz |
---|---|
Co nowego dla deweloperów języka C++ | Co nowego dla deweloperów języka C++ w programie Visual Studio 2022 17.7 |
Nowe funkcje języka C++ specyficzne dla tworzenia gier | Uwolnienie możliwości tworzenia gier w programie Visual Studio 2022 dla języka C++ |
Funkcje biblioteki standardowej (STL) scalone w języku C++23, rozwiązania problemów LWG, ulepszenia wydajności, ulepszone zachowanie i naprawione błędy | Dziennik zmian STL 17.7 |
Nowe funkcje w środowisku IDE programu Visual Studio 17.7 | Informacje o wersji 17.7 programu Visual Studio 2022 |
Ulepszenia zgodności języka C++ w programie Visual Studio 2022 17.7 | Ulepszenia zgodności języka C++, zmiany zachowania i poprawki błędów w programie Visual Studio 2022 |
Częściowa lista nowych funkcji:
- Szybsze debugowanie sesji i szybsze czasy ładowania projektu
- Szczegółowe wizualizacje rozszerzania makr
- Pobieranie jednym kliknięciem dla Podsystem Windows dla systemu Linux (WSL)
- Ulepszona obsługa komentarzy Doxygen
- Analiza kompilacji języka C++ na potrzeby tworzenia gier
- Dodano
/std:clatest
dla kompilatora języka C. - Ulepszenia projektu Unreal Engine, takie jak szybsza funkcja IntelliSense i kolorowanie składni, możliwość znajdowania wszystkich odwołań do strategii aparatu Unreal Engine i nie tylko.
Co nowego w języku C++ w programie Visual Studio w wersji 17.6
Wydany w maju 2023 r.
Aby uzyskać więcej informacji o | Zobacz |
---|---|
Co nowego dla deweloperów języka C++ | Co nowego dla deweloperów języka C++ w programie Visual Studio 2022 17.6 |
Funkcje biblioteki standardowej (STL) scalone w języku C++23, rozwiązania problemów LWG, ulepszenia wydajności, ulepszone zachowanie i naprawione błędy | Dziennik zmian STL 17.6 |
Nowe funkcje w środowisku IDE programu Visual Studio 17.6 | Informacje o wersji 17.6 programu Visual Studio 2022 |
Ulepszenia zgodności języka C++ w programie Visual Studio 2022 17.6 | Ulepszenia zgodności języka C++, zmiany zachowania i poprawki błędów w programie Visual Studio 2022 |
Częściowa lista nowych funkcji obejmuje:
- Debugowanie skryptu narzędzia CMake
- Wbudowana obsługa języka cieniowania wysokiego poziomu (HLSL)
- Podgląd dziennika nierealnego aparatu
- VCPKG jest teraz domyślnie dodawany
- Początkowa obsługa języka C++20 w projektach C++/CLI oraz niektóre standardowe funkcje bibliotek języka C++23 dla zakresów.
Co nowego w języku C++ w programie Visual Studio w wersji 17.5
Wydany w lutym 2023 r.
Aby uzyskać więcej informacji o | Zobacz |
---|---|
Co nowego dla deweloperów języka C++ | Co nowego dla deweloperów języka C++ w programie Visual Studio 2022 17.5 |
Funkcje biblioteki standardowej (STL) scalone w języku C++23, rozwiązania problemów LWG, ulepszenia wydajności, ulepszone zachowanie i naprawione błędy | Dziennik zmian STL 17.5 |
Nowe funkcje w środowisku IDE programu Visual Studio 17.5 | Informacje o wersji 17.5 programu Visual Studio 2022 |
Częściowa lista nowych funkcji obejmuje:
std::move
, ,std::forward
std::move_if_noexcept
istd::forward_like
teraz nie generują wywołań funkcji w wygenerowany kod, nawet w trybie debugowania. Ta zmiana pozwala uniknąć rzutów nazwanych, co powoduje niepotrzebne obciążenie w kompilacjach debugowania./permissive-
(lub opcja, która implikuje to, na przykład/std:c++20
lubstd:c++latest
) jest wymagana.Dodano
[[msvc::intrinsic]]
element . Ten atrybut można zastosować do funkcji nierekursywnych składających się z pojedynczego rzutowania, które przyjmują tylko jeden parametr.Dodano obsługę konsoli systemu Linux w zintegrowanym terminalu, co umożliwia we/wy terminalu.
Dodano początkową obsługę eksperymentalną dla niepodzielnych elementów pierwotnych C11 (
<stdatomic.h>
). Możesz włączyć tę funkcję eksperymentalną z opcją/experimental:c11atomics
w/std:c11
trybie lub nowszym.Dodano nowy zestaw eksperymentalnych testów o wysokim poziomie ufności do modułu sprawdzania okresu istnienia w celu zmniejszenia szumu.
Nowa funkcja w wersji zapoznawczej, Remote Eksplorator plików, umożliwia wyświetlanie katalogu plików na maszynach zdalnych w programie VS oraz przekazywanie i pobieranie do niego plików.
Zmieniono przechowywanie wersji plików wykonywalnych CMake dostarczanych z programem Visual Studio w celu dopasowania ich do wersji kitware.
Dodano obsługę Przeładowywanie na gorąco do szablonu projektu CMake.
Przejdź do definicji języka C++ używa teraz bardziej subtelnego wskaźnika operacji, zastępując modalne okno dialogowe z poprzednich wersji.
Rozpoczęto wdrażanie eksperymentu zapewniającego bardziej inteligentne wyniki na liście autouzupełniania i składowych języka C++. Ta funkcja była wcześniej znana jako Predykcyjna funkcja IntelliSense, ale teraz używa nowej metody prezentacji.
Teraz dostarczamy natywny zestaw narzędzi Clang arm64 z obciążeniem LLVM, umożliwiając natywną kompilację na maszynach Arm64.
Dodano lokalizację do rozszerzenia zegarka obrazu (to rozszerzenie jest dostępne w witrynie Marketplace i nie jest powiązane za pośrednictwem Instalator programu Visual Studio).
Dodano obsługę otwierania okna terminalu do aktualnie uruchomionego kontenera deweloperów.
Wprowadzono kilka ulepszeń rozszerzenia makr intelliSense. W szczególności włączyliśmy rozszerzanie cyklicznego w większej liczniejszych kontekstach i dodaliśmy opcje do wyskakującego okienka w celu skopiowania rozszerzenia do schowka lub rozwinięcia makra wbudowanego.
Monitorowanie współbieżne jest teraz obsługiwane w monitorze szeregowym. Monitorowanie współbieżne umożliwia monitorowanie wielu portów jednocześnie jednocześnie. Naciśnij przycisk plus, aby otworzyć inny monitor szeregowy i rozpocząć pracę.
Teraz można wyświetlać właściwości z klas bazowych zmodyfikowanych w zasobie Unreal Blueprint bez opuszczania programu Visual Studio. Kliknij dwukrotnie odwołanie do strategii dla klasy lub właściwości języka C++, aby otworzyć inspektora zasobów UE w programie Visual Studio.
Włączono uruchamianie aplikacji DevContainers na zdalnej maszynie z systemem Linux.
Włączono wybór wielu obiektów docelowych do skompilowania w widoku Obiektów docelowych narzędzia CMake.
Dodano obsługę CMakePresets.json w wersji 5. Aby uzyskać informacje o nowych funkcjach, zobacz dokumentację narzędzia CMake.
Włączono Eksploratora testów w celu równoległego kompilowania i testowania wielu obiektów docelowych narzędzia CMake.
Dodano opcję "Otwórz kontener w terminalu" do kontenerów deweloperskich.
Zaimplementowano standardowe funkcje biblioteki:
Co nowego w języku C++ w programie Visual Studio w wersji 17.4
Wydany w listopadzie 2022 r.
Aby uzyskać więcej informacji o | Zobacz |
---|---|
Co nowego dla deweloperów języka C++ | Co nowego dla deweloperów języka C++ w programie Visual Studio 2022 17.4 |
Funkcje biblioteki standardowej (STL) scalone w języku C++23, rozwiązania problemów LWG, ulepszenia wydajności, ulepszone zachowanie i naprawione błędy | Dziennik zmian STL 17.4 |
Nowe funkcje w środowisku IDE programu Visual Studio 17.4 | Informacje o wersji 17.4 programu Visual Studio 2022 |
Ulepszenia zgodności języka C++ w programie Visual Studio 2022 17.4 | Ulepszenia zgodności języka C++, zmiany zachowania i poprawki błędów w programie Visual Studio 2022 |
Częściowa lista nowych funkcji w wersji 17.4:
Ulepszone komunikaty o błędach kompilatora w celu zapewnienia bardziej poprawnych i przydatnych informacji, zwłaszcza w przypadku pojęć.
Dodano eksperymentalną opcję
/experimental:log<directory>
MSVC w celu wyprowadzenia ustrukturyzowanej diagnostyki SARIF do określonego katalogu.Dodano obsługę atrybutów C23 do funkcji IntelliSense i ciągłego postępu obsługi modułów języka C++20.
Zwiększona wydajność indeksowania podczas otwierania nowego rozwiązania. Duże projekty mogą zobaczyć 20-35% poprawę z 17,3.
Ulepszona optymalizacja nazwanych wartości zwracanych (NRVO):
- Funkcja NRVO jest włączona w przypadku przypadków obejmujących obsługę wyjątków lub pętle.
- Funkcja NRVO jest włączona nawet w obszarze
/Od
, jeśli użytkownik przekaże opcję lub/std:c++20
nowszą/Zc:nrvo
lub/permissive-
. - Teraz możesz wyłączyć funkcję NRVO z opcją
/Zc:nrvo-
.
Uaktualniono wersję maszyny LLVM dostarczanej z programem Visual Studio do wersji 15.0.1. Aby uzyskać więcej informacji na temat dostępnych funkcji, zobacz informacje o wersji maszyn wirtualnych LLVM i Clang .
Dodano obsługę artefaktów vcpkg w programie Visual Studio z projektami CMake. W przypadku projektów zawierających manifest vcpkg środowisko jest aktywowane automatycznie podczas otwierania projektu. Dowiedz się więcej o tej funkcji w wpisie w blogu dotyczącym aktywacji środowiska vcpkg w programie Visual Studio .
Teraz możesz używać usługi Dev Containers dla projektów języka C++. Dowiedz się więcej o tej funkcji w naszym wpisie w blogu Dev Containers for C++ .
Funkcja IntelliSense uwzględnia teraz kolejność preincludowanych nagłówków, gdy jeden z nich jest PCH. Wcześniej, gdy PCH był używany za pośrednictwem funkcji i wymuszony za pośrednictwem
/Yu
/FI
funkcji , funkcja IntelliSense zawsze przetwarzała ją jako pierwszą, zanim wszystkie inne nagłówki zawarte za pośrednictwem polecenia/FI
. To zachowanie nie jest zgodne z zachowaniem kompilacji. Dzięki tej zmianie/FI
nagłówki są przetwarzane w podanej kolejności.Usunięto wewnętrzne prefiksy z nazw CTest w Eksploratorze testów.
Zaktualizowano wersję narzędzia CMake dostarczoną z programem Visual Studio do wersji 3.24.1. Aby uzyskać szczegółowe informacje na temat dostępnych informacji, zobacz informacje o wersji narzędzia CMake.
Aktualizacja zestawu SDK systemu Android:
- Skrypty Ant zostały usunięte, więc użytkownicy nie zobaczą już szablonów opartych na antach w oknie dialogowym Nowy projekt. Aby uzyskać pomoc dotyczącą migracji z szablonów Ant do szablonów narzędzia Gradle, zobacz Migrowanie kompilacji z platformy Apache Ant
- Dodano obsługę kompilowania przy użyciu zestawów NDK 23 i 24
- Zaktualizowano składnik NDK do wersji 23 LTS
Dodano wektoryzowane implementacje
ranges::min_element()
elementów ,ranges::max_element()
iranges::minmax_element()
Kontynuujemy śledzenie najnowszych zmian w standaryzacji języka C++. Obsługa tych funkcji języka C++23 jest dostępna przez uwzględnienie
/std:c++latest
ich w opcjach kompilatora:string_view
Konstruktor zakresu P2499R0 powinien byćexplicit
auto(x)
P0849R8 : rozkład kopii w języku(Część kompilatora nie jest jeszcze zaimplementowana. Część biblioteki została zaimplementowana w trybie C++20, gdy obsługa zakresów została początkowo zaimplementowana).
ranges::iota
P2440R1 , ,ranges::shift_left
ranges::shift_right
Dodano opcję "Nawigacja po utworzeniu deklaracji/definicji", aby umożliwić wybranie zachowania nawigacji funkcji Utwórz deklarację/definicję. Możesz wybrać między podglądem (ustawieniem domyślnym) lub otwarciem dokumentu albo bez nawigacji.
Kompilacje arm64 programu Visual Studio łączą teraz wersje Arm64 CMake i Ninja.
Dodano obsługę ustawień wstępnych CMake w wersji 4. Aby uzyskać szczegółowe informacje na temat dostępnych informacji, zobacz informacje o wersji narzędzia CMake.
Połączenia z systemem zdalnym przy użyciu Menedżer połączeń obsługują teraz protokół SSH ProxyJump. Serwer ProxyJump służy do uzyskiwania dostępu do hosta SSH za pośrednictwem innego hosta SSH (na przykład w celu uzyskania dostępu do hosta za zaporą).
Co nowego w języku C++ w programie Visual Studio w wersji 17.3
Wydany w sierpniu 2022 r.
Aby uzyskać więcej informacji o | Zobacz |
---|---|
Co nowego dla deweloperów języka C++ | Ulepszenia języka C++ w wersji 17.3 |
Funkcje biblioteki standardowej (STL) scalone w języku C++23, rozwiązania problemów LWG, ulepszenia wydajności, ulepszone zachowanie i naprawione błędy | Dziennik zmian STL 17.3 |
Nowe funkcje w środowisku IDE programu Visual Studio 17.3 | Informacje o wersji 17.3 programu Visual Studio 2022 |
Ulepszenia zgodności języka C++ w programie Visual Studio 2022 17.3 | Ulepszenia zgodności języka C++, zmiany zachowania i poprawki błędów w programie Visual Studio 2022 |
Częściowa lista nowych funkcji w wersji 17.3:
- Łańcuch narzędzi Arm64EC nie jest już oznaczony jako eksperymentalny i jest gotowy do użycia w środowisku produkcyjnym.
- Terminal programu Visual Studio może być teraz używany jako klient SSH z przechowywanymi połączeniami SSH. Po zainstalowaniu programu C++ for Linux Tools otwórz okno narzędzia terminalu. Lista rozwijana Terminal zostanie wypełniona zapisanymi połączeniami. Po wybraniu połączenia zostanie otwarte nowe okno terminalu w programie Visual Studio, które pokazuje pseudo-terminal w systemie zdalnym. Obsługiwane są znaki sterujące, kolory i rozpoznawanie położenia kursora.
- Program Visual Studio może teraz dodawać szablony klas Unreal Engine dla projektów UE. Aby wypróbować tę funkcję, upewnij się, że w obciążeniu Programowanie gier w języku C++ w Instalator programu Visual Studio wybrano obsługę środowiska IDE dla aparatu Unreal Engine. Podczas pracy nad projektem UE kliknij prawym przyciskiem myszy projekt lub folder/filtr i wybierz polecenie Dodaj>klasę UE.
- Przejdź do definicji teraz zapamiętuje poprzedni podpis i przechodzi odpowiednio, gdy lepsze dopasowanie jest niedostępne (na przykład po ręcznej zmianie podpisu jednej z par). Czas odpowiedzi funkcji Przejdź do wszystkich został ulepszony. Wcześniej wyniki pojawiły się po zatrzymaniu wpisywania. W nowym środowisku wyniki są wyświetlane podczas wpisywania.
- W kontekstach wymagających
enum
ukończenia typu (na przykład przypisania doenum
zmiennych, etykiet wielkości liter, zwracanegoenum
typu itd.) lista autouzupełniania jest teraz filtrowana tylko do pasujących modułów wyliczających i powiązanych konstrukcji. - Dodano obsługę funkcji NuGet PackageReference dla projektów C++/CLI MSBuild przeznaczonych dla platformy .NET Core. Ta zmiana została wprowadzona w celu odblokowania mieszanych baz kodu z możliwości wdrożenia platformy .NET Core. Ta obsługa nie działa w przypadku innych typów projektów C++ ani żadnych typów projektów C++ przeznaczonych dla platformy .NET Framework. Nie ma planów rozszerzenia obsługi funkcji PackageReference na inne scenariusze języka C++. Zespół pracuje nad oddzielnymi środowiskami z udziałem narzędzia vcpkg w scenariuszach innych niż MSBuild i w celu dodania większej funkcjonalności.
- Dodano okno Monitor szeregowy na potrzeby programowania osadzonego dostępne za pośrednictwem debugowania >monitora szeregowego systemu Windows.>
- Ulepszono indeksowanie języka C++ o ok. 66% w porównaniu z 17,2.
- Zaktualizowano wersję narzędzia CMake dostarczoną z programem Visual Studio do wersji 3.23. Aby uzyskać szczegółowe informacje o dostępności, zobacz informacje o wersji narzędzia CMake 3.23.
- Uaktualniono wersje narzędzi LLVM dostarczanych z programem Visual Studio do wersji 14. Aby uzyskać szczegółowe informacje o dostępności, zobacz informacje o wersji maszyny wirtualnej LLVM i Clang .
- Zaktualizowano zestaw narzędzi Dev 16.11 C++ do wersji 14.29.30145.00. Najnowsza wersja zestawu narzędzi Dev 16.11 C++ zawiera ważne poprawki błędów, w tym naprawianie wszystkich pozostałych raportów błędów C++20. Aby uzyskać więcej informacji na temat poprawek błędów, w tym raportów o błędach języka C++20 w programie Dev 16.11, zobacz Informacje o wersji programu Visual Studio 2019 w wersji 16.11.14.
- Wprowadzono różne ulepszenia środowiska w edytorze modułów języka C++. Nieustannie pracujemy nad poprawą jakości środowiska, ale zachęcamy do wypróbowania ich w wersji 17.3. Zgłoś pozostałe problemy za pośrednictwem społeczności deweloperów.
Co nowego w języku C++ w programie Visual Studio w wersji 17.2
Wydany w maju 2022 r.
Aby uzyskać więcej informacji o | Zobacz |
---|---|
Co nowego dla deweloperów języka C++ | Program Visual Studio 2022 17.2 jest teraz dostępny |
Scalona biblioteka Standardowa (STL) scaliła raporty wad języka C++20, funkcje języka C++23, rozwiązania problemów LWG, ulepszenia wydajności, ulepszone zachowanie i naprawione błędy | Dziennik zmian STL 17.2 |
Nowe funkcje w środowisku IDE programu Visual Studio 17.2 | Informacje o wersji 17.2 programu Visual Studio 2022 |
Ulepszenia zgodności języka C++ w programie Visual Studio 2022 17.2 | Ulepszenia zgodności języka C++, zmiany zachowania i poprawki błędów w programie Visual Studio 2022 |
Częściowa lista nowych funkcji w wersji 17.2:
- Dodano obsługę kompilatora dla funkcji deducing
this
języka C++23 dostępnej w/std:c++latest
ramach opcji . - Dodano obsługę funkcji IntelliSense dla funkcji deducing
this
języka C++23 iif consteval
. - Dodano obsługę wbudowanych nazw parametrów i wskazówek typów, przełączane przez naciśnięcie Alt+F1 lub dwukrotne naciśnięcie Ctrl. To zachowanie można dostosować w obszarze Narzędzia > Opcje > Edytory > tekstów C/C++ > IntelliSense.
- Dodano obsługę eksperymentalną modułów języka C++20 w projektach CMake. Ta obsługa jest obecnie dostępna tylko w generatorze programu Visual Studio (MSBuild).
- W wersji 17.1 wprowadziliśmy widoki rejestracji urządzeń peryferyjnych i RTOS dla deweloperów osadzonych. Nadal ulepszamy możliwości tych widoków dzięki ulepszeniom użyteczności w wersji 17.2:
- Okno narzędzia RTOS jest teraz domyślnie ukryte. Zapobiega to wyświetlaniu okna narzędzi z komunikatami o błędach, które nie są istotne, gdy nie używasz systemu RTOS.
- Po dwukrotnym kliknięciu obiektu RTOS w oknie narzędzia zostanie dodany zegarek dla obiektu.
- Po wybraniu wartości początkowych i końcowych wskaźnika stosu w oknie narzędzia RTOS zostanie on otwarty w oknie pamięci.
- Dodano rozpoznawanie wątków dla obiektów docelowych urządzeń w oknie stosu wywołań.
- Użytkownicy mogą teraz wybrać ikonę pinezki obok urządzeń peryferyjnych, rejestrów lub pól, aby przypiąć je w górnej części widoku peryferyjnego.
- Dodano implementacje pozostałych raportów wad języka C++20 (nazywanych również backportami). Wszystkie funkcje języka C++20 są teraz dostępne w
/std:c++20
ramach opcji . Aby uzyskać więcej informacji na temat wdrożonych backportów, zobacz projekt C++20 Defect Reports w repozytorium Microsoft/STL GitHub i wpis w blogu STL Completes/std:c++20
MSVC. - Dodaliśmy różne funkcje biblioteki języka C++23 dostępne w
/std:c++latest
ramach opcji . Aby uzyskać więcej informacji na temat nowych funkcji, zobacz dziennik zmian repozytorium STL. - Zwiększona wydajność początkowego indeksowania języka C++ o maksymalnie 20%, w zależności od głębokości wykresu dołączania.
Co nowego w języku C++ w programie Visual Studio w wersji 17.1
Wydany w lutym 2022 r.
Aby uzyskać więcej informacji o | Zobacz |
---|---|
Co nowego dla deweloperów języka C++ | Program Visual Studio 2022 17.1 jest teraz dostępny! |
Funkcje biblioteki standardowej (STL) scalone w języku C++23, rozwiązania problemów LWG, ulepszenia wydajności, ulepszone zachowanie i naprawione błędy | Dziennik zmian STL 17.1 |
Nowe funkcje w środowisku IDE programu Visual Studio 17.1 | Informacje o wersji 17.1 programu Visual Studio 2022 |
Ulepszenia zgodności języka C++ w programie Visual Studio 2022 17.1 | Ulepszenia zgodności języka C++, zmiany zachowania i poprawki błędów w programie Visual Studio 2022 |
Częściowa lista nowych funkcji w wersji 17.1:
- Dodano nowy szablon Konfigurowanie ustawień wstępnych do konfigurowania i kompilowania projektów CMake w zdalnym systemie macOS za pomocą polecenia
CMakePresets.json
. Można również uruchomić obiekty docelowe narzędzia CMake w zdalnym systemie macOS, a następnie debugować zdalnie w debugerze programu Visual Studio wspieranym przez usługę GDB lub LLDB. - Teraz można debugować podstawowe zrzuty w zdalnym systemie macOS z poziomu programu Visual Studio przy użyciu usługi LLDB lub GDB.
- Wersje programu
Clang
Visual Studio iLLVM
dostarczane z programem Visual Studio są uaktualniane do wersji 13. - Integracja narzędzia CMake programu Visual Studio jest aktywna tylko wtedy, gdy
CMakeLists.txt
element jest identyfikowany w katalogu głównym otwartego obszaru roboczego. Jeśli elementCMakeLists.txt
zostanie zidentyfikowany na innym poziomie obszaru roboczego, zostanie wyświetlony monit o aktywowanie integracji narzędzia CMake programu Visual Studio z powiadomieniem. - Nowe widoki, które umożliwiają inspekcję i interakcję z rejestrami peryferyjnymi na mikrokontrolerach i obiektach systemów operacyjnych czasu rzeczywistego (RTOS), dostępnych za pośrednictwem debugowania >rejestrów systemu Windows Embedded>
- Dodano nowy widok wątków dla projektów RTOS, dostępny za pośrednictwem debugowania >obiektów systemu Windows>RTOS. Aby uzyskać więcej informacji, zobacz Embedded Software Development in Visual Studio (Tworzenie oprogramowania osadzonego w programie Visual Studio).
Co nowego w języku C++ w programie Visual Studio w wersji 17.0
Wydany w listopadzie 2021 r.
Aby uzyskać więcej informacji o | Zobacz |
---|---|
Nowe funkcje w środowisku IDE programu Visual Studio 17.0 | Informacje o wersji 17.0 programu Visual Studio 2022 |
Funkcje biblioteki standardowej (STL), scalone funkcje C++26 i C++23, raporty o wadach języka C++20, rozwiązania problemów LWG, ulepszenia wydajności, ulepszone zachowanie i naprawione błędy | Dziennik zmian STL 17.0 |
Ulepszenia zgodności języka C++ w programie Visual Studio 2022 17.0 | Ulepszenia zgodności języka C++, zmiany zachowania i poprawki błędów w programie Visual Studio 2022 17.10 |
Omówienie niektórych nowych funkcji w programie Visual Studio 2022 w wersji 17.0:
- Środowisko IDE programu Visual Studio,
devenv.exe
, jest teraz natywną aplikacją 64-bitową. - Zestaw narzędzi MSVC domyślnie domyślnie określa skrót sha-256 źródła w rekordach debugowania. Wcześniej zestaw narzędzi domyślnie używał rozwiązania MD5 do tworzenia skrótów źródłowych.
- Narzędzia kompilacji w wersji 143 są teraz dostępne za pośrednictwem instalatora programu Visual Studio i w autonomicznych narzędziach kompilacji.
Przeładowywanie na gorąco dla natywnego języka C++
- Przeładowywanie na gorąco dla języka C++ umożliwia edytowanie wielu typów kodu w uruchomionej aplikacji i stosowanie ich bez konieczności wstrzymania wykonywania aplikacji z punktem przerwania.
W programie Visual Studio 2022 po uruchomieniu aplikacji w debugerze możesz użyć przycisku Przeładowywanie na gorąco, aby zmodyfikować aplikację, gdy jest ona nadal uruchomiona. To środowisko jest obsługiwane przez natywną edycję i kontynuuj. Aby uzyskać więcej informacji na temat obsługiwanych edycji, zobacz Edytowanie i kontynuowanie (C++).
- Przeładowywanie na gorąco obsługuje projekty CMake i Open Folder.
Obsługa protokołu WSL2
- Teraz można kompilować i debugować natywnie w systemie WSL2 bez ustanawiania połączenia SSH. Obsługiwane są zarówno międzyplatformowe projekty CMake, jak i projekty systemu Linux oparte na programie MSBuild.
Ulepszona obsługa narzędzia CMake
Uaktualniono wersję narzędzia CMake dostarczoną z programem Visual Studio do wersji 3.21. Aby uzyskać więcej informacji na temat dostępnych w tej wersji, zobacz informacje o wersji narzędzia CMake 3.21.
Strony przeglądu narzędzia CMake są aktualizowane w celu obsługi programu
CMakePresets.json
.Teraz można konfigurować i kompilować projekty CMake za pomocą narzędzia CMake 3.21 i
CMakePresets.json
v3.Program Visual Studio obsługuje
buildPresets.targets
teraz opcję wCMakePresets.json
programie . Ta opcja umożliwia utworzenie podzestawu obiektów docelowych w projekcie CMake.Menu Project w projektach CMake jest usprawnione i uwidacznia opcje "Usuń pamięć podręczną i ponownie skonfiguruj" i "Wyświetl pamięć podręczną".
Zaimplementowano opcję kompilatora
/scanDependencies
, aby wyświetlić listę zależności modułów języka C++20 dla projektów CMake zgodnie z opisem w P1689R5. Jest to krok w kierunku obsługi tworzenia projektów opartych na modułach za pomocą narzędzia CMake i pracujemy nad ukończeniem tej obsługi w kolejnych wersjach.
Ulepszenia biblioteki standardowej
W tym miejscu wyróżniono ulepszenia biblioteki standardowej (STL). Aby uzyskać kompleksową listę nowych funkcji, zmian, poprawek błędów i ulepszeń wydajności, zobacz dziennik zmian zespołu STL.
- Dodano wizualizatory debugowania w celu poprawienia sposobu wyświetlania następujących typów:
source_location
, ,bind_front()
u8string
(i jego iteratorów),ranges::iota_view
unreachable_sentinel_t
ranges::single_view
default_sentinel_t
ranges::empty_view
, (i iteratora/sentinel),ranges::ref_view
,thread
,thread::id
, ijthread
filesystem::path
- Dodano
[[nodiscard]]
do rodziny funkcji w<string>
systemach i do różnych funkcji,<locale>
takich jakcollate
funkcje składowe,has_facet()
oraz rodziny iisalnum()
tolower()
.stoi()
- P0980R1 wykonane
std::string
constexpr
w programie VS 2019 16.10. Teraz obsługiwane w języku Clang. - P1004R2 wykonane
std::vector
constexpr
w programie VS 2019 16.10. Teraz obsługiwane w języku Clang.
Wyróżnione funkcje języka C++23
- P1048R1 Dodano
is_scoped_enum
nową cechę biblioteki standardowej języka C++, która wykrywa, czy typ jest wyliczeniem o określonym zakresie. -
out_ptr()
P1132R7 ,inout_ptr()
-
contains()
P1679R3 dlabasic_string
ibasic_string_view
-
to_underlying()
P1682R3 dla wyliczeń - P2162R2 Zezwalaj na dziedziczenie z
std::variant
- P2166R1 Zakazać konstruowania
basic_string
ibasic_string_view
znullptr
. Ta zmiana jest zmianą powodującą niezgodność źródła. Kod, który wcześniej miał niezdefiniowane zachowanie w czasie wykonywania, jest teraz odrzucany z błędami kompilatora. - P2186R2 Usunięto obsługę odzyskiwania pamięci. Ta zmiana powoduje
declare_reachable
usunięcie , ,undeclare_reachable
,declare_no_pointers
,get_pointer_safety
undeclare_no_pointers
. Wcześniej te funkcje nie miały wpływu.
Wyróżnione ulepszenia wydajności
<format>
teraz wykrywa, kiedy zapisujeback_insert_iterator
w obiekcie dla elementubasic_string
lubvector
, i wykonuje szybsze wywołanieinsert()
elementu wend()
kontenerze.- Poprawiliśmy wydajność
std::find()
istd::count()
dlavector<bool>
19x i 26x (razy, a nie procent). - Poprawiliśmy wydajność dla polecenia
std::count()
vector<bool>
std::byte
teraz ma taką samą wydajność jakunsigned char
w systemiereverse()
ivariant::swap()
Obsługa oprogramowania Clang i LLVM
Narzędzia LLVM dostarczane z programem Visual Studio są uaktualniane do maszyny WIRTUALNEJ LLVM 12. Aby uzyskać więcej informacji, zobacz informacje o wersji maszyny wirtualnej LLVM.
Obsługa języka Clang-cl została zaktualizowana do maszyny WIRTUALNEJ LLVM 12.
Teraz można debugować procesy uruchomione w systemie zdalnym z poziomu programu Visual Studio przy użyciu usługi LLDB.
Przestarzałe C++ AMP
- Nagłówki C++ AMP są teraz przestarzałe. Uwzględnienie
<amp.h>
w projekcie C++ generuje błędy kompilacji. Aby wyciszyć błędy, zdefiniuj wartość_SILENCE_AMP_DEPRECATION_WARNINGS
. Aby uzyskać więcej informacji, zobacz nasze linki amp deprecation.
Ulepszenia funkcji IntelliSense
- Wprowadziliśmy ulepszenia w funkcji IntelliSense języka C++ podczas udostępniania wyróżniania nawigacji i składni dla typów z zaimportowanych modułów i jednostek nagłówka. IntelliSense to dla nas aktywny obszar inwestycji. Pomóż nam ulepszyć: podziel się swoją opinią na temat społeczności deweloperów, korzystając z pomocy >wyślij opinię.
- Poprawiliśmy wydajność funkcji IntelliSense języka C++, optymalizując użycie nagłówka w pamięci podręcznej i dostęp do bazy danych symboli, zapewniając ulepszone czasy ładowania umożliwiające przejście do kodu.
- Funkcja Linter kodu IntelliSense dla języka C++ jest teraz domyślnie włączona, zapewniając błyskawiczne sugestie podczas wpisywania i naprawianie sugestii dotyczących typowych wad kodu.
- Funkcja IntelliSense języka C++ dla projektów CMake działa teraz w przypadku używania ustawień wstępnych z nazwą wyświetlaną.
Aktualizacje obciążeń języka C++
- Zaktualizowano do wersji NDK r21 LTS w obciążeniu C++ Mobile Development .
- Programowanie gier w języku C++ teraz instaluje najnowszy aparat Unreal Engine z obsługą programu Visual Studio 2022.
Ulepszenia analizy kodu
- Analiza kodu wymusza teraz, aby zwracały wartości funkcji z adnotacjami
_Check_return_
lub_Must_inspect_result_
muszą być sprawdzane. - Wykrywanie wyłusek wskaźnika null zostało ulepszone w naszym narzędziu do analizy kodu.
- Dodano obsługę analizy
gsl::not_null
kodu. - Obsługa biblioteki Libfuzzer w ramach opcji kompilatora
/fsanitize=fuzzer
.
Informacje o wersji dla starszych wersji
Dostępne są również informacje o wersji dla starszych wersji języka C++:
- Aby uzyskać informacje na temat nowości w języku C++ w programie Visual Studio 2019, zobacz Co nowego w języku C++ w programie Visual Studio 2019.
- Aby uzyskać informacje na temat nowości w języku C++ w programie Visual Studio 2017, zobacz Co nowego w języku C++ w programie Visual Studio 2017.
- Aby uzyskać informacje na temat nowości we wcześniejszych wersjach, zobacz Visual C++ What's new 2003 to 2015 (Co nowego w wersji 2003–2015).
Znane problemy
C++ IntelliSense
Aby uzyskać więcej informacji na temat innych otwartych problemów i dostępnych obejść dla języka C++ w programie Visual Studio 2022, zobacz listę problemów społeczności deweloperów języka C++.
Opinie i sugestie
Z przyjemnością poznamy opinie użytkowników. Możesz zgłosić problem lub zasugerować funkcję przy użyciu ikony Wyślij opinię w prawym górnym rogu instalatora lub środowiska IDE programu Visual Studio albo w obszarze Wyślij opinię w Pomocy>. Problemy można śledzić przy użyciu społeczności deweloperów programu Visual Studio, w której można dodawać komentarze lub znajdować rozwiązania. Możesz też uzyskać bezpłatną pomoc dotyczącą instalacji za pośrednictwem naszej pomocy technicznej przez czat na żywo.
Blogi
Skorzystaj ze szczegółowych informacji i zaleceń dostępnych w witrynie Blogi dla deweloperów firmy Microsoft, aby być na bieżąco ze wszystkimi nowymi wersjami. Blogi zawierają szczegółowe wpisy dotyczące szerokiej gamy funkcji. Blog zespołu języka C++ i blog programu Visual Studio są szczególnie interesujące.