Visual Studio 2022'de C++ ile ilgili yenilikler

Visual Studio 2022, Microsoft C++ derleyicisine ve araçlarına birçok güncelleştirme ve düzeltme getirir. Visual Studio IDE ayrıca performans ve üretkenlikte önemli geliştirmeler sunar ve şimdi 64 bit uygulama olarak yerel olarak çalışır.

Visual Studio sürüm 17.11'de C++ ile ilgili yenilikler

Ağustos 2024'te yayınlandı

Bunun hakkında daha fazla bilgi için: Bkz:
C++ geliştiricilerine yönelik yenilikler Visual Studio 2022 17.11'deki C++ Geliştiricilerine Yönelik Yenilikler
Standart Kitaplık (STL) birleştirilmiş C++26 ve C++23 özellikleri, C++20 hata raporları, LWG sorun çözümleri, performans iyileştirmeleri, gelişmiş davranış ve düzeltilen hatalar STL Değişiklik Günlüğü 17.11
Visual Studio 17.11 IDE'deki yeni özellikler Visual Studio 2022 sürüm 17.11 Sürüm Notları
Visual Studio 2022 17.11'de C++ dil uyumluluğu geliştirmeleri Visual Studio 2022 17.11'de C++ Uyumluluk geliştirmeleri, davranış değişiklikleri ve hata düzeltmeleri

Yeni özelliklerin kısmi listesi:

  • Standart Kitaplık Geliştirmeleri:

    • Biçimlendirilmiş çıkış uygulaması artık ve std::tupleiçin std::pair ve biçimlendiricilerini içerirstd::range_formatter.
    • bağımsız değişken olmadan için std::println() desteği eklendi. Bu, P3142R0'de önerilen şekilde boş bir satır yazdırır.
    • 8 bit ve 16 bit öğeler için , replace_copy_if(), ranges::replace_copy, ranges::replace_copy_if, find_first_of() ve ranges::find_first_ofgibi replace_copy()çeşitli algoritmalar için geliştirilmiş vektörleştirme, mismatch(), ranges::mismatch, count() ranges::count, find(), ranges::find, ranges::find_lastve ranges::iota.
  • C++ ile oyun geliştirme

    • Artık Visual Studio'dan yaygın Unreal Engine sınıf şablonları, modülleri ve eklentileri ekleyebilirsiniz. Daha fazla bilgi için bkz . Visual Studio'da Gerçek Dışı Altyapı sınıfları, modülleri ve eklentileri ekleme.
    • Yeni Unreal Engine araç çubuğu, Visual Studio'dan Gerçek Dışı Altyapı ile ilgili eylemlere hızlı erişim sağlar. Araç çubuğu, Gerçek Dışı Altyapı işlemlerine hızla eklemenize, Blueprints önbelleğini yeniden taramanıza, Gerçek Dışı Altyapı Günlüğü'ne hızla erişmenize ve Visual Studio için Gerçek Dışı Altyapı Yapılandırma Sayfası'na hızlı erişim sağlamanıza olanak tanır. Daha fazla bilgi için bkz . Gerçek Dışı Altyapı Araç Çubuğu.
    • Artık izleme sonuçlarını projeye göre filtreleyebilirsiniz. Ayrıca, her satırdaki sonuçlar tam yol yerine göreli yolu ve dosya adını gösterir. Eklenen Dosyalar görünümündeki sonuç gruplandırma özelliği de geliştirilmiştir:

    Geliştirilmiş Eklenen Dosyalar tanılama sonuçlarının ekran görüntüsü.

    Eklenen Dosyalar görünümünde proje için yeni bir sütun bulunur. Proje sütunu seçilir ve (Tümünü Seç), CompilerIdC, OpenAL, ortak vb. projeler seçilir. Eklenen dosyalar göreli yol ve dosya adına göre listelenir ve birlikte gruplandırılır.

  • CMake hata ayıklama

    • Artık Linux için Windows Alt Sistemi (WSL) veya SSH aracılığıyla Linux'u hedefleyen CMake projeleri için Visual Studio hata ayıklayıcısında CMake betiklerinizin ve CMakeLists.txt dosyalarınızın hatalarını ayıklayabilirsiniz. Visual Studio'da bir CMake hata ayıklama oturumu başlatmak için dosyanızda CMakeLists.txt bir kesme noktası ayarlayın ve ardından Project>Configure Cache with CMake Debugging bölümüne gidin.
  • Copilot

    • Kod düzenleyicisindeki simgelerin üzerine geldiğinizde, verilen bir simge hakkında daha fazla bilgi edinmek için Hızlı Bilgi iletişim kutusundaki Copilot Daha fazla bilgi ver düğmesine tıklayın:

    Hızlı Bilgi penceresinin ekran görüntüsü.

    Hızlı Bilgi penceresi bir işlevin üzerinde gösterilir. Daha fazla bilgi ver bağlantısı vurgulanır.

    • GitHub Copilot, tanımlayıcınızın nasıl kullanıldığına ve kodunuzun stiline göre tanımlayıcılarınız (değişkenler, yöntemler veya sınıflar) için adlandırma önerileri oluşturabilir.

      GitHub Copilot Yeniden Adlandır iletişim kutusunun ekran görüntüsü.

      Yeniden Adlandır iletişim kutusunda text_color, font_color, display_color, console_color ve menu_text_color seçeneklerini gösteren bir açılan liste içeren Yeni ad alanı vardır.

    Etkin bir GitHub Copilot aboneliğiniz olmalıdır. Yeniden adlandırmak istediğiniz değişkene sağ tıklayın ve Yeniden Adlandır 'ı (Ctrl+R, Ctrl+R) seçin. Adlandırma önerileri oluşturmak için GitHub Copilot sparkle simgesini seçin.

  • Hata ayıklama

    • C++ dilindeki koşullu kesme noktaları önemli ölçüde daha hızlıdır.
  • Tanılama geliştirmeleri

    • Şablon bağımsız değişkenlerinde birden çok örneği T olan bir std::tuple üzerinde çağrı std::get<T> yaparken geliştirilmiş tanılama. MSVC aşağıdakileri raporlamak için kullanılır:
      error C2338: static_assert failed: 'duplicate type T in get<T>(tuple)'.
      Şimdi bildiriyor:
      error C2338: static_assert failed: 'get<T>(tuple<Types...>&) requires T to occur exactly once in Types.(N4971 [tuple.elemm]/5)'
    • İstenen sonuç oluşturulamadığında std::ranges::to geliştirilmiş tanılama. MSVC aşağıdakileri raporlamak için kullanılır:
      error C2338: static_assert failed: 'the program is ill-formed per N4950 [range.utility.conv.to]/2.3'
      Şimdi bildiriyor:
      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)'

Visual Studio sürüm 17.10'da C++ ile ilgili yenilikler

Mayıs 2024'te yayınlandı

Bunun hakkında daha fazla bilgi için: Bkz:
C++ geliştiricilerine yönelik yenilikler Visual Studio 2022 17.10'da C++ Geliştiricilerine yönelik yenilikler
Standart Kitaplık (STL) birleştirilmiş C++26 ve C++23 özellikleri, C++20 hata raporları, LWG sorun çözümleri, performans iyileştirmeleri, gelişmiş davranış ve düzeltilen hatalar STL Değişiklik Günlüğü 17.10
Visual Studio 17.10 IDE'deki yeni özellikler Visual Studio 2022 sürüm 17.10 Sürüm Notları
Visual Studio 2022 17.10'da C++ dil uyumluluğu geliştirmeleri Visual Studio 2022 17.10'da C++ Uyumluluk geliştirmeleri, davranış değişiklikleri ve hata düzeltmeleri

Yeni özelliklerin kısmi listesi:

  • MSVC Araç Takımı Güncelleştirmesi: MSVC araç takımı sürümü 19.39'dan 19.40'a güncelleştirilir. Bu, sürüm varsayımlarına sahip projeleri etkileyebilir. Bunun, MSVC sürümlerinin tümünün Visual Studio 2022 sürümleri için 19.3X olduğunu varsayan projeleri etkilemenin bazı yolları hakkında daha fazla bilgi için bkz . VS 2022 v17.10'da MSVC Araç Takımı İkincil Sürüm Numarası 14.40.
  • Standart Kitaplık Geliştirmeleri: Standart kitaplık, tamsayılar için mevcut olanlarla aynı hizada daha fazlasını kullanırken std::format işaretçiler için biçim tanımlayıcıları kümesini getiren P2510R3 Biçimlendirme İşaretçileri desteği ekledi. , std::ranges::minve arkadaşlarının vektörleştirilmiş uygulamaları std::min_elementgeliştirildi.
  • Build Insights: Artık şablon örneği oluşturma bilgileri sağlanmaktadır. Bkz. Visual Studio'da Derleme İçgörüleri için Şablonlar Görünümü veya Visual Studio'da Derleme İçgörüleri kaydı için Saf Sanal C++ - Şablonlar görünümü.
  • Gerçek Dışı Altyapı Eklentisi: Gerçek Dışı Altyapı Eklentisi'nin arka planda çalışması için başlangıç maliyetlerini azaltan yeni bir kabul etme özelliği vardır. Bu, Araçlar>Seçenekler>Gerçek Dışı Altyapısı aracılığıyla etkinleştirilen bir kabul etme özelliğidir.
  • Linux için yeni özellikler: Bkz . Visual Studio'da Yeni Linux Geliştirme Özellikleri.
  • CMake Hedefleri: Artık hedefleri CMake Hedefleri Görünümü'nde sabitleyebilirsiniz.
  • Bağlantı Yöneticisi UX: Kullanıcı deneyimi, uzak sistemlere bağlanırken daha sorunsuz bir deneyim sağlar. Daha fazla bilgi için bkz. Visual Studio Bağlantı Yöneticisi Kullanılabilirlik Geliştirmeleri.
  • Çekme isteği açıklamaları: Artık GitHub ve Azure DevOps açıklamalarını doğrudan çalışma dosyanızda görüntüleyebilirsiniz. Özellik bayrağını, Seçenekler>Ortamı>Önizleme Özellikleri'nde Çekme İsteği Açıklamaları'nı etkinleştirin ve başlamak için çekme isteği dalını kullanıma alın.
  • Yapay Zeka Tarafından Oluşturulan İçerik: GitHub Copilot artık çekme isteği açıklamalarını taslak olarak oluşturabilir. Etkin bir GitHub Copilot aboneliği gerektirir. Çekme İsteği Oluştur penceresinde Yapay Zeka Tarafından Oluşturulan Çekme İsteği Açıklaması Ekle mini kalem simgesine tıklayarak deneyin.
  • Görüntü Önizleme: Boyut ayrıntılarını içeren bir önizleme görmek için bir resim yolunun üzerine gelin. Boyut, 500 piksel genişliğinde ve yüksekliğinde olacak şekilde eşlenir.

    Vurgulama önizlemesinin ekran görüntüsü.

    Fare std::filesystem::p ath vs_logo_path = ".. /images/vs_logo.png". Altında Visual Studio logosunun önizlemesi ve 251 x 500 piksel ve 13,65 KB boyutunda olduğu bilgisi gösterilir.

  • Kesme Noktası/İzleme Noktası Oluşturma: Artık sağ tıklama menüsünden doğrudan kaynak koddaki ifadelerden koşullu kesme noktaları veya izleme noktaları oluşturabilirsiniz. Bu, otomatikler, yereller, izleme pencereleri veya Veri İpuçları'ndan özellik veya alan adları ve değerleri üzerinde çalışır.
  • İşlem İletişim Kutusuna Ekle: İşleme Ekle iletişim kutusu tarafından sağlanan işlevsellik daha kullanıcı dostudur. Artık ağaç ve liste görünümleri arasında kolayca geçiş yapabilir, daraltılabilir bölümler ile işlemleri daha iyi düzenleyebilir ve basitleştirilmiş birleşik giriş kutusuyla kod türlerini seçebilirsiniz. Ayrıca, "Pencereyi Seç/İzle" özelliği artık daha kolay kullanılabiliyor ve iki yönlü izlemeye olanak sağlıyor: bir işlem seçildiğinde pencere vurgulanıyor ve bir pencereye tıklandığında süreci seçiliyor.
  • GitHub Copilot Tümleştirmesi: GitHub Copilot ve Copilot Sohbet uzantıları artık birleştirildi ve şimdi doğrudan Visual Studio'da gönderiliyor. Yüklemek için Visual Studio Yükleyicisi GitHub Copilot bileşenini yükleyin:

    GitHub Copilot yükleme seçeneğini Visual Studio Yükleyicisi ekran görüntüsü.

    GitHub Copilot arabirimi Visual Studio'nun sağ üst köşesindedir. Bunu kullanmak için etkin bir GitHub Copilot aboneliğine ihtiyacınız vardır.

    GitHub Copilot düğmesinin ekran görüntüsü.

    Visual Studio'nun sağ üst köşesinde GitHub Copilot düğmesi gösterilir. Sohbet penceresi açma, GitHub Copilot ayarları, daha fazla bilgi edinme ve copilot aboneliğini yönetme seçenekleri vardır.

Visual Studio sürüm 17.9'da C++ ile ilgili yenilikler

Yayın Tarihi: Şubat 2024

Bunun hakkında daha fazla bilgi için: Bkz:
C++ geliştiricilerine yönelik yenilikler Visual Studio 2022 17.9'da C++ Geliştiricilerine yönelik yenilikler
Standart Kitaplık (STL) birleştirilmiş C++23 özellikleri, performans iyileştirmeleri, gelişmiş davranış, LWG sorun çözümleri ve düzeltilen hatalar STL Değişiklik Günlüğü 17.9
Visual Studio 17.9 IDE'deki yeni özellikler Visual Studio 2022 sürüm 17.9 Sürüm Notları
Visual Studio 2022 17.9'da C++ dil uyumluluğu geliştirmeleri Visual Studio 2022'de C++ Uyumluluk geliştirmeleri, davranış değişiklikleri ve hata düzeltmeleri
C++ arka uç güncelleştirmelerinin özeti Visual Studio 2022 sürüm 17.3'ten bu yana MSVC Arka Uç güncelleştirmeleri

Yeni özelliklerin kısmi listesi:

  • #include tanılaması, yönergelerinizin #include ayrıntılı bir analizini sağlar. Bir öğesine sağ tıklayıp #include #include yönergelerini>seçerek bu özelliği etkinleştirin #include yönerge tanılamasını açın. #include Her birinin üstünde kodunuzun bu dosyaya kaç kez başvurduğunu #include gösterir. Kodunuzun bu üst bilgi dosyasından bir şey kullandığı yere gitmek için başvuru bağlantısına tıklayın. Yönergelerinizin #include derleme süresini görüntülemek için Çözüm Derlemesinde Derleme Çalıştırma İçgörüleri'ne> giderek Build Insights'ı> çalıştırın.

    #include tanılamasının ekran görüntüsü.

    # include dosyasının üstünde bir **başvuru** bağlantısı ve bu # include dosyasına yapılan başvuruların çoğu (bu örnekte 1) bulunur. Derleme süresi de listelenir (bu durumda saniyede 1/2'den az).

  • Belleğin sınıflarınız, yapılarınız ve birleşimleriniz için nasıl düzenlendiğini gösteren bellek düzeni görselleştirmesi. Bir türün üzerine gelin ve Seçilen türün bellek düzenini gösteren ayrılmış bir pencere açmak için Hızlı Bilgi'deki Bellek Düzeni bağlantısını seçin. Bu penceredeki tek tek veri türlerinin üzerine gelindiğinde, türün içindeki boyutları ve uzaklıkları hakkında ayrıntılı bilgi sağlanır.

    Bellek düzeni penceresinin ekran görüntüsü

    Bellek düzeni penceresinde Snake sınıfının içeriği gösterilir. Baş ve gövde konumu için Point sınıfları, puan vb. gibi sınıfın çeşitli alanlarının bellek uzaklıklarını gösterir.

  • Artık kendi özel CMake yürütülebilir dosyanızı belirtebilirsiniz. Bu özellik, Visual Studio ile birlikte gönderilmemiş belirli bir CMake sürümünü kullanmak istiyorsanız kullanışlıdır. Araçlar>Seçenekleri'ne gidin ve CMake Genel'i> seçin. Özel CMake yürütülebilir dosyasını etkinleştir'i seçin ve CMake yürütülebilir dosyanızın dizin yolunu belirtin.

    CMake seçenekleri iletişim kutusunun ekran görüntüsü

    "Özel CMake yürütülebilir dosyasını etkinleştir" seçeneğinin ve "CMake Yürütülebilir Dizini" alanının vurgulandığı CMake seçenekleri iletişim kutusu.

  • Unreal Engine projeleri için geliştirilmiş IntelliSense.
  • C++23 desteği geliştirildi: std::format ve std::spanformattable, range_format, format_kindve set_debug_format() P0009R18 başına P2286R8 Biçimlendirme Aralıkları<mdspan> ve C++23 Standard'a uygulanan sonraki sözcük değişikliklerinin bir parçası olarak. Ayrıca, format() P2510R3 başına işaretçileri biçimlendirebilir.

Visual Studio sürüm 17.8'deki C++ ile ilgili yenilikler

Yayın Tarihi: Kasım 2023

Bunun hakkında daha fazla bilgi için: Bkz:
C++ geliştiricilerine yönelik yenilikler Visual Studio 2022 17.8'deki C++ Geliştiricilerine yönelik yenilikler
Standart Kitaplık (STL) birleştirilmiş C++26, C++23 özellikleri, C++20 uzantıları, LWG sorun çözümleri, performans iyileştirmeleri, gelişmiş davranış ve düzeltilen hatalar STL Değişiklik Günlüğü 17.8
Visual Studio 17.8 IDE'deki yeni özellikler Visual Studio 2022 sürüm 17.8 Sürüm Notları
Visual Studio 2022 17.8'de C++ dil uyumluluğu geliştirmeleri Visual Studio 2022'de C++ Uyumluluk geliştirmeleri, davranış değişiklikleri ve hata düzeltmeleri
2023'te Visual Studio, VS Code ve vcpkg'deki C++ iyileştirmelerine genel bakış C++ geliştirmeleri yılı

Yeni özelliklerin kısmi listesi:

  • Çıkış penceresinde C++ yapılandırılmış tanılama ve hata hakkında daha fazla bilgi sağlayan yeni bir sorun ayrıntıları penceresi. Daha fazla bilgi için bkz . Yapılandırılmış SARIF Çıktısı ve Sorun Ayrıntıları Penceresi.
  • Kod derlenmesinden önce bile sınıflarınızın, yapılarınızın, birleşimlerinizin, temel türlerinizin veya sabit listelerinizin boyutunu ve hizalamasını görselleştirmenize olanak tanıyan bir özellik. Tanımlayıcının üzerine gelin ve Hızlı Bilgi boyut ve hizalama bilgilerini görüntüler.
  • Nesnenin durumunu değiştirmedikleri için üye işlevlerin const ne zaman işaretlendiğini öneren bir özellik. Bir üye işlevinin üzerine gelin ve ampul simgesine tıklayarak işlevi olarak constişaretleyin.
  • Visual Studio şimdi işlev adında görünen bir tornavida simgesi aracılığıyla genel işlevleri statik olarak işaretlemenizi ister. İşlevi statik olarak işaretlemek için tornavida simgesine tıklayın.
  • Kullanılmayan #include yönergeleri düzenleyicide soluk görüntülenir. Soluk bir eklemenin üzerine gelebilir ve ampul menüsünü kullanarak bu dahil edilenleri veya kullanılmayan tüm eklemeleri kaldırabilirsiniz. Diğer üst bilgiler aracılığıyla dolaylı olarak dahil edilen varlıklar için yönergeler de ekleyebilirsiniz #include . Daha fazla bilgi için bkz . Visual Studio'da C/C++ eklemelerini temizleme.
  • Daha fazla Gerçek Dışı Altyapı desteği:
    • Gerçek Dışı Altyapı Test Bağdaştırıcısı, Visual Studio IDE'den çıkmadan Gerçek Dışı Altyapı testlerinizi bulmanızı, çalıştırmanızı, yönetmenizi ve hatalarını ayıklamanızı sağlar.
    • Unreal Engine Code Kod Parçacıkları ile, üye listenizde kod parçacıkları olarak yaygın Unreal Engine yapılarını bulabilirsiniz.
    • Build Insights artık Visual Studio 2022 ile tümleştirilmiştir ve MSVC kullanarak MSBuild ve CMake projeleriyle çalışır. Artık derlemenin ne kadar sürdüğü ve ForceInlines sayısı ve üst bilgi dosyalarının derleme süresi üzerindeki etkisi gibi bir işlevin derlenmesi hakkında ek bilgiler görebilirsiniz. Daha fazla bilgi için bkz. Öğretici: Derleme zamanında işlev inlining sorunlarını giderme ve Öğretici: Derleme zamanı üzerindeki üst bilgi dosyası etkisini giderme.
  • Uzak Linux birim testi desteği artık yerel testleriniz gibi CTest ve GTest testlerinizi Visual Studio'nun Test Gezgini'nden uzak Linux makinelerinizde çalıştırmanıza olanak tanır.

Visual Studio sürüm 17.7'deki C++ ile ilgili yenilikler

Yayın Tarihi: Ağustos 2023

Bunun hakkında daha fazla bilgi için: Bkz:
C++ geliştiricilerine yönelik yenilikler Visual Studio 2022 17.7'deki C++ Geliştiricilerine yönelik yenilikler
Oyun geliştirmeye özgü yeni C++ özellikleri C++ Oyun Geliştirme için Visual Studio 2022'nin Gücünü Ortaya Çıkarma
Standart Kitaplık (STL) birleştirilmiş C++23 özellikleri, LWG sorun çözümleri, performans iyileştirmeleri, gelişmiş davranış ve düzeltilen hatalar STL Değişiklik Günlüğü 17.7
Visual Studio 17.7 IDE'deki yeni özellikler Visual Studio 2022 sürüm 17.7 Sürüm Notları
Visual Studio 2022 17.7'de C++ dil uyumluluğu geliştirmeleri Visual Studio 2022'de C++ Uyumluluk geliştirmeleri, davranış değişiklikleri ve hata düzeltmeleri

Yeni özelliklerin kısmi listesi:

  • Daha hızlı hata ayıklama oturumları ve daha hızlı proje yükleme süreleri
  • Makro genişletmenin adım adım görselleştirmesi
  • Linux için Windows Alt Sistemi için tek tıklamayla indirme (WSL)
  • Doxygen yorumları için geliştirilmiş destek
  • Oyun geliştirme için C++ Build Insights
  • C derleyicisi için eklendi /std:clatest .
  • Daha hızlı IntelliSense ve söz dizimi renklendirmesi, tüm Gerçek Dışı Altyapı Şeması başvurularını bulma özelliği ve daha fazlası gibi Gerçek Dışı Altyapı proje geliştirmeleri.

Visual Studio sürüm 17.6'daki C++ ile ilgili yenilikler

Mayıs 2023'te yayınlandı

Bunun hakkında daha fazla bilgi için: Bkz:
C++ geliştiricilerine yönelik yenilikler Visual Studio 2022 17.6'daki C++ Geliştiricilerine Yönelik Yenilikler
Standart Kitaplık (STL) birleştirilmiş C++23 özellikleri, LWG sorun çözümleri, performans iyileştirmeleri, gelişmiş davranış ve düzeltilen hatalar STL Değişiklik Günlüğü 17.6
Visual Studio 17.6 IDE'deki yeni özellikler Visual Studio 2022 sürüm 17.6 Sürüm Notları
Visual Studio 2022 17.6'da C++ dil uyumluluğu geliştirmeleri Visual Studio 2022'de C++ Uyumluluk geliştirmeleri, davranış değişiklikleri ve hata düzeltmeleri

Yeni özelliklerin kısmi listesi şunları içerir:

  • CMake betiğinde hata ayıklama
  • Yüksek Düzey Gölgelendirme Dili (HLSL) için yerleşik destek
  • Gerçek Dışı Altyapı Günlüğü görüntüleyicisi
  • VCPKG artık varsayılan olarak eklenmiştir
  • C++/CLI projelerinde C++20 için ilk destek ve aralıklar için bazı C++23 standart kitaplık özellikleri.

Visual Studio sürüm 17.5'teki C++ ile ilgili yenilikler

Yayın Tarihi: Şubat 2023

Bunun hakkında daha fazla bilgi için: Bkz:
C++ geliştiricilerine yönelik yenilikler Visual Studio 2022 17.5'teki C++ Geliştiricilerine Yönelik Yenilikler
Standart Kitaplık (STL) birleştirilmiş C++23 özellikleri, LWG sorun çözümleri, performans iyileştirmeleri, gelişmiş davranış ve düzeltilen hatalar STL Değişiklik Günlüğü 17.5
Visual Studio 17.5 IDE'deki yeni özellikler Visual Studio 2022 sürüm 17.5 Sürüm Notları

Yeni özelliklerin kısmi listesi şunları içerir:

  • std::move, std::forward, std::move_if_noexceptve std::forward_like artık hata ayıklama modunda bile oluşturulan kodda işlev çağrıları üretmez. Bu değişiklik, hata ayıklama derlemelerinde gereksiz yüke neden olan adlandırılmış atamaları önler. /permissive- (veya veya gibi /std:c++20 std:c++latestbunu ima eden bir seçenek) gereklidir.

  • eklendi [[msvc::intrinsic]]. Bu özniteliği, yalnızca bir parametreyi alan tek bir atamadan oluşan, özyinelemeli olmayan işlevlere uygulayabilirsiniz.

  • Tümleşik Terminalde, terminal G/Ç'ye olanak tanıyan Linux Konsolu desteği eklendi.

  • C11 atomik temel öğeleri<stdatomic.h> () için ilk deneysel destek eklendi. Bu deneysel özelliği mod veya sonraki bir seçenekle /experimental:c11atomics /std:c11 etkinleştirebilirsiniz.

  • Daha az kirlilik için Yaşam Süresi Denetleyicisi'ne yeni bir deneysel yüksek güvenilirlik denetimi kümesi eklendi.

  • Uzak Dosya Gezgini adlı yeni bir önizleme özelliği, VS içindeki uzak makinelerinizde dosya dizinini görüntülemenizi ve dosyaları karşıya yükleyip indirmenizi sağlar.

  • Visual Studio ile birlikte gönderilen CMake yürütülebilir dosyaları Kitware sürümleriyle eşleşecek şekilde değiştirildi.

  • CMake Projesi şablonuna Çalışırken Yeniden Yükleme desteği eklendi.

  • C++ için Tanıma Git artık işlemin daha fazla zaman aldığına ilişkin daha ince bir gösterge kullanıyor ve önceki sürümlerden kalıcı iletişim kutusunun yerini alıyor.

  • C++ otomatik tamamlama ve üye listesinde daha akıllı sonuçlar sağlayan bir denemenin dağıtımı başlatıldı. Bu işlev daha önce Tahmine Dayalı IntelliSense olarak biliniyordu ancak şimdi yeni bir sunu yöntemi kullanıyor.

  • Şimdi LLVM iş yükümüzle yerel bir Arm64 Clang araç takımı göndererek Arm64 makinelerinde yerel derlemeye olanak sunuyoruz.

  • Image Watch Uzantısına yerelleştirme eklendi (Bu uzantı Market'te kullanılabilir ve Visual Studio Yükleyicisi üzerinden paketlenmez).

  • Şu anda çalışan Geliştirici Kapsayıcısı'na Terminal penceresi açma desteği eklendi.

  • IntelliSense makro genişletmesinde çeşitli geliştirmeler yapıldı. Özellikle, daha fazla bağlamda özyinelemeli genişletmeyi etkinleştirdik ve genişletmeyi panoya kopyalamak veya makroyu satır içi olarak genişletmek için açılır pencereye seçenekler ekledik.

  • Eşzamanlı izleme artık Seri İzleyici'de desteklenmektedir. Eşzamanlı izleme, birden çok bağlantı noktasını aynı anda yan yana izlemenizi sağlar. Başka bir Seri monitör açmak ve başlamak için artı düğmesine basın.

  • Artık Visual Studio'dan çıkmadan Gerçek Olmayan Şema varlığında değiştirilen temel sınıflardan özellikleri görüntüleyebilirsiniz. Visual Studio'da UE Varlık Denetçisi'ni açmak için C++ sınıfı veya özelliği için Şema başvurusuna çift tıklayın.

  • Uzak bir Linux makinesinde DevContainers çalıştırma etkinleştirildi.

  • CMake Hedefleri görünümünde derlenmek üzere birden çok hedefin seçilmesi etkinleştirildi.

  • CMakePresets.json sürüm 5 için destek eklendi. Yeni özellikler hakkında bilgi için CMake belgelerine bakın.

  • Birden çok CMake hedeflerini paralel olarak derlemek ve test etmek için Test Gezgini etkinleştirildi.

  • Geliştirme Kapsayıcıları'na "Terminalde kapsayıcı aç" seçeneği eklendi.

  • Uygulanan standart kitaplık özellikleri:

    • basic_format_stringP2508R1 , format_string,wformat_string
    • ranges::fold_leftP2322R6 , ranges::fold_rightvb.
    • views::zip P2321R2 (zip_transform, adjacentve adjacent_transformiçermez)

Visual Studio sürüm 17.4'teki C++ ile ilgili yenilikler

Yayın Tarihi: Kasım 2022

Bunun hakkında daha fazla bilgi için: Bkz:
C++ geliştiricilerine yönelik yenilikler Visual Studio 2022 17.4'teki C++ Geliştiricilerine Yönelik Yenilikler
Standart Kitaplık (STL) birleştirilmiş C++23 özellikleri, LWG sorun çözümleri, performans iyileştirmeleri, gelişmiş davranış ve düzeltilen hatalar STL Değişiklik Günlüğü 17.4
Visual Studio 17.4 IDE'deki yeni özellikler Visual Studio 2022 sürüm 17.4 Sürüm Notları
Visual Studio 2022 17.4'te C++ dil uyumluluğu geliştirmeleri Visual Studio 2022'de C++ Uyumluluk geliştirmeleri, davranış değişiklikleri ve hata düzeltmeleri

17.4 sürümündeki yeni özelliklerin kısmi listesi:

  • Özellikle kavramlar için daha doğru ve kullanışlı bilgiler sağlamak için derleyici hata iletileri geliştirildi.

  • Belirtilen dizine yapılandırılmış SARIF tanılamasını çıkarmak için deneysel MSVC seçeneği /experimental:log<directory> eklendi.

  • IntelliSense'e C23 öznitelikleri için destek eklendi ve C++20 modül desteğinde devam etti.

  • Yeni bir çözüm açılırken dizin oluşturma performansı iyileştirildi. Büyük projeler 17,3'ten %20-35'lik bir iyileştirme görebilir.

  • Geliştirilmiş Adlandırılmış Dönüş Değeri İyileştirmesi (NRVO):

    • NRVO, özel durum işleme veya döngüler içeren durumlar için etkinleştirilir.
    • NRVO, kullanıcı seçeneğini veya daha sonraki /permissive-bir sürümü ya da /std:c++20 seçeneğini geçse /Zc:nrvo bile altında /Od etkinleştirilir.
    • Artık seçeneğiyle NRVO'yi /Zc:nrvo- devre dışı bırakabilirsiniz.
  • Visual Studio ile birlikte gönderilen LLVM sürümünü 15.0.1 sürümüne yükseltti. Sunulanlar hakkında daha fazla bilgi için LLVM ve Clang sürüm notlarına bakın.

  • CMake projeleriyle vcpkg yapıtları için Visual Studio'ya destek eklendi. Vcpkg bildirimi içeren projeler için ortam, proje açıkken otomatik olarak etkinleştirilir. Visual Studio'da vcpkg ortamı etkinleştirme blog gönderisinde bu özellik hakkında daha fazla bilgi edinin.

  • Artık C++ projeleriniz için Geliştirme Kapsayıcıları kullanabilirsiniz. C++ için Geliştirme Kapsayıcıları blog gönderimizde bu özellik hakkında daha fazla bilgi edinin.

  • IntelliSense artık biri PCH olduğunda, önceden oluşturulmuş üst bilgilerin sırasına uyar. Daha önce, aracılığıyla bir PCH kullanıldığında /Yu ve aracılığıyla /FIzorla dahil edildiğinde IntelliSense, aracılığıyla /FIdahil edilen diğer üst bilgilerden önce her zaman önce bunu işlerdi. Bu davranış derleme davranışıyla eşleşmedi. Bu değişiklikle, /FI üst bilgiler belirtilen sırayla işlenir.

  • Test Gezgini'ndeki CTest adlarından iç ön ekler kaldırıldı.

  • Visual Studio ile birlikte gönderilen CMake sürümü 3.24.1 sürümüne güncelleştirildi. Nelerin kullanılabildiğinin ayrıntıları için bkz . CMake sürüm notları.

  • Android SDK güncelleştirmesi:

    • Ant betikleri kaldırıldı, bu nedenle kullanıcılar artık Yeni Proje iletişim kutusunda Ant tabanlı şablonları görmüyor. Ant şablonlarından Gradle şablonlarına geçiş konusunda yardım için bkz . Derlemeleri Apache Ant'tan Geçirme
    • NDK 23 ve 24 ile derleme desteği eklendi
    • NDK bileşeni LTS sürüm 23'e güncelleştirildi
  • , ranges::max_element()ve vektörleştirilmiş uygulamaları ranges::min_element()eklendiranges::minmax_element()

  • C++ standardizasyonundaki en son gelişmeleri izlemeye devam ediyoruz. Bu C++23 özelliklerine yönelik destek, derleyici seçeneklerinize eklenerek /std:c++latest sağlanır:

    • ranges::containsP2302R4,ranges::contains_subrange

    • string_view P2499R0 Aralık Oluşturucu olmalıdırexplicit

    • auto(x)P0849R8: Dilde bozunma-kopyalama

      (Derleyici bölümü henüz uygulanmadı. Kitaplık bölümü, Aralıklar desteği ilk kez uygulandığında C++20 modunda uygulandı.)

    • P0881R7 <stacktrace>

    • P2301R1 için diğer pmr ad eklemestd::stacktrace

    • P1328R1 constexpr type_info::operator==()

    • ranges::iotaP2440R1 , ranges::shift_left,ranges::shift_right

    • P2441R2 views::join_with

  • Bildirim/Tanım Oluştur özelliğinin gezinti davranışını seçmenize olanak sağlamak için "Bildirim/Tanım Oluşturduktan Sonra Gezinti" seçeneği eklendi. Göz atma (varsayılan) veya belgeyi açma ya da gezinti olmaması arasında seçim yapabilirsiniz.

  • Visual Studio'nun Arm64 derlemeleri artık CMake ve Ninja'nın Arm64 sürümlerini paketlemektedir.

  • CMake Ön Ayarları sürüm 4 için destek eklendi. Nelerin kullanılabildiğinin ayrıntıları için bkz . CMake sürüm notları.

  • Bağlantı Yöneticisi kullanan uzak sistem bağlantıları artık SSH ProxyJump'ı destekliyor. ProxyJump, bir SSH konağına başka bir SSH konağı üzerinden (örneğin, bir güvenlik duvarının arkasındaki bir konağa erişmek için) erişmek için kullanılır.

Visual Studio sürüm 17.3'teki C++ ile ilgili yenilikler

Yayın Tarihi: Ağustos 2022

Bunun hakkında daha fazla bilgi için: Bkz:
C++ geliştiricilerine yönelik yenilikler 17.3'te C++ geliştirmeleri
Standart Kitaplık (STL) birleştirilmiş C++23 özellikleri, LWG sorun çözümleri, performans iyileştirmeleri, gelişmiş davranış ve düzeltilen hatalar STL Değişiklik Günlüğü 17.3
Visual Studio 17.3 IDE'deki yeni özellikler Visual Studio 2022 sürüm 17.3 Sürüm Notları
Visual Studio 2022 17.3'te C++ dil uyumluluğu geliştirmeleri Visual Studio 2022'de C++ Uyumluluk geliştirmeleri, davranış değişiklikleri ve hata düzeltmeleri

17.3 sürümündeki yeni özelliklerin kısmi listesi:

  • Arm64EC araç zinciri artık deneysel olarak işaretlenmez ve üretim kullanımına hazırdır.
  • Visual Studio Terminali artık depolanan SSH bağlantılarınızla bir SSH istemcisi olarak kullanılabilir. Linux araçları için C++ yüklü olarak Terminal aracı penceresini açın. Terminal açılan listesi, depolanan bağlantılarınızla doldurulur. Bir bağlantı seçtiğinizde, Visual Studio'da uzak sisteminizde sahte terminal gösteren yeni bir Terminal penceresi açılır. Denetim karakterleri, renkler ve imleç konumsal farkındalığı desteklenir.
  • Visual Studio artık UE projeleriniz için Gerçek Dışı Altyapı sınıf şablonları ekleyebilir. Bu özelliği denemek için Visual Studio Yükleyicisi C++ ile oyun geliştirme iş yükünde Gerçek Dışı Altyapı için IDE desteğinin seçildiğinden emin olun. Bir UE projesi üzerinde çalışırken projeye veya klasöre/filtreye sağ tıklayın ve UE Sınıfı Ekle'yi>seçin.
  • Tanım'a git artık önceki imzayı anımsar ve daha iyi bir eşleşme kullanılamadığında buna göre gezinirken (örneğin, çiftten birinin imzasını el ile değiştirdikten sonra). Tümüne Git'in yanıt hızı iyileştirildi. Daha önce, siz yazmayı durdurduktan sonra sonuçlar görünüyordu. Yeni deneyimde, siz yazarken sonuçlar gösterilir.
  • Tür tamamlama gerektiren enum bağlamlarda (örneğin, değişkenlere enum atamalar, büyük/küçük harf etiketleri, dönüş enum türü vb.), otomatik tamamlama listesi artık yalnızca eşleşen numaralandırıcılara ve ilgili yapılara göre filtrelenmiştir.
  • .NET Core'ı hedefleyen C++/CLI MSBuild projeleri için NuGet PackageReference desteği eklendi. Bu değişiklik, karma kod temellerinin .NET Core'un benimsenmesinin engelini kaldırmak için yapılmıştır. Bu destek, diğer C++ proje türleri veya .NET Framework'i hedefleyen C++ proje türleri için çalışmaz. PackageReference desteğini diğer C++ senaryolarına genişletme planı yoktur. Ekip, MSBuild dışı senaryolar için vcpkg içeren ayrı deneyimler üzerinde çalışıyor ve daha fazla işlevsellik ekliyor.
  • Windows>Seri İzleyici'de Hata Ayıklama>aracılığıyla kullanılabilen ekli geliştirme için bir Seri İzleyici penceresi eklendi.
  • C++ dizin oluşturma 17,2 ile karşılaştırıldığında yaklaşık %66 geliştirildi.
  • Visual Studio ile birlikte gönderilen CMake sürümü 3.23 sürümüne güncelleştirildi. Nelerin kullanılabildiğinin ayrıntıları için CMake 3.23 sürüm notlarına bakın.
  • Visual Studio ile birlikte gönderilen LLVM araçlarının sürümleri v14'e yükseltildi. Sunulanlar hakkında ayrıntılı bilgi için LLVM ve Clang sürüm notlarına bakın.
  • Yan yana Dev 16.11 C++ Araç Takımı 14.29.30145.00 sürümüne güncelleştirildi. Dev 16.11 C++ Araç Takımı'nın en son sürümü, kalan tüm C++20 hata raporlarını düzeltme de dahil olmak üzere önemli hata düzeltmeleri içerir. Dev 16.11'deki C++20 hata raporları da dahil olmak üzere hata düzeltmeleri hakkında daha fazla bilgi için bkz . Visual Studio 2019 sürüm 16.11.14 sürüm notları.
  • C++ modüllerinin düzenleyici içi deneyiminde çeşitli geliştirmeler yapıldı. Deneyimin kalitesini geliştirmek için sürekli çalışıyoruz ancak bunları 17.3'te denemenizi öneririz. Kalan sorunları Geliştirici Topluluğu aracılığıyla bildirin.

Visual Studio sürüm 17.2'deki C++ ile ilgili yenilikler

Mayıs 2022'de yayınlandı

Bunun hakkında daha fazla bilgi için: Bkz:
C++ geliştiricilerine yönelik yenilikler Visual Studio 2022 17.2 kullanıma sunuldu
Standart Kitaplık (STL) birleştirilmiş C++20 hata raporları, C++23 özellikleri, LWG sorun çözümleri, performans iyileştirmeleri, gelişmiş davranış ve düzeltilen hatalar STL Değişiklik Günlüğü 17.2
Visual Studio 17.2 IDE'deki yeni özellikler Visual Studio 2022 sürüm 17.2 Sürüm Notları
Visual Studio 2022 17.2'de C++ dil uyumluluğu geliştirmeleri Visual Studio 2022'de C++ Uyumluluk geliştirmeleri, davranış değişiklikleri ve hata düzeltmeleri

17.2 sürümündeki yeni özelliklerin kısmi listesi:

  • seçeneği altında /std:c++latest sağlanan C++23 özelliği için thisderleyici desteği eklendi.
  • ve if constevalC++23 özellikleri thisiçin IntelliSense desteği eklendi.
  • Alt+F1 tuşlarına basarak veya Ctrl tuşlarına iki kez dokunarak satır içi parametre adı ve tür ipucu desteği eklendi. Bu davranış, Araçlar > Seçenekler > Metin Düzenleyicileri > C/C++ > IntelliSense altında özelleştirilebilir.
  • CMake projelerinde C++20 modülleri için deneysel destek eklendi. Bu destek şu anda yalnızca Visual Studio (MSBuild) oluşturucu ile kullanılabilir.
  • 17.1'de, katıştırılmış geliştiriciler için çevre birimi kaydı ve RTOS görünümlerini kullanıma sunuyoruz. 17.2'de kullanılabilirlik geliştirmeleriyle bu görünümlerin özelliklerini geliştirmeye devam ediyoruz:
    • RTOS araç penceresi artık varsayılan olarak gizlenir. RTOS kullanmadığınızda ilgili olmayan hata iletileri içeren bir araç penceresinin gösterilmesini engeller.
    • Araç penceresinde bir RTOS nesnesine çift tıkladığınızda nesne için bir saat eklenir.
    • RTOS araç penceresinde yığın işaretçisi için başlangıç ve bitiş değerlerini seçtiğinizde, bellek penceresinde açılır.
    • Çağrı yığını penceresine cihaz hedefleri için iş parçacığı tanıma özelliği eklendi.
    • Kullanıcılar artık çevre birimlerinin, kayıtların veya alanların yanında bir raptiye simgesi seçerek Bunları Çevre Birimi Görünümü'ne sabitleyebilir.
  • Kalan C++20 hata raporlarının uygulamaları eklendi (geri bağlantı noktası olarak da bilinir). Tüm C++20 özellikleri artık seçeneği altında /std:c++20 kullanılabilir. Uygulanan arka bağlantılar hakkında daha fazla bilgi için Microsoft/STL GitHub deposundaki C++20 Hata Raporları projesine ve MSVC'nin STL Completes /std:c++20 blog gönderisine bakın.
  • Seçeneğin altında bulunan çeşitli C++23 Kitaplığı özellikleri ekledik /std:c++latest . Yeni özellikler hakkında daha fazla bilgi için bkz . STL Deposu değişiklik günlüğü.
  • ekleme grafiğinin derinliğine bağlı olarak ilk C++ dizin oluşturmanın performansı %20'ye kadar geliştirildi.

Visual Studio sürüm 17.1'deki C++ ile ilgili yenilikler

Yayın Tarihi: Şubat 2022

Bunun hakkında daha fazla bilgi için: Bkz:
C++ geliştiricilerine yönelik yenilikler Visual Studio 2022 17.1 kullanıma sunuldu!
Standart Kitaplık (STL) birleştirilmiş C++23 özellikleri, LWG sorun çözümleri, performans iyileştirmeleri, gelişmiş davranış ve düzeltilen hatalar STL Değişiklik Günlüğü 17.1
Visual Studio 17.1 IDE'deki yeni özellikler Visual Studio 2022 sürüm 17.1 Sürüm Notları
Visual Studio 2022 17.1'de C++ dil uyumluluğu geliştirmeleri Visual Studio 2022'de C++ Uyumluluk geliştirmeleri, davranış değişiklikleri ve hata düzeltmeleri

17.1 sürümündeki yeni özelliklerin kısmi listesi:

  • ile CMakePresets.jsonuzak bir macOS sisteminde CMake projelerini yapılandırmak ve derlemek için yeni bir Önceden Ayarlanmış Yapılandırma şablonu eklenir. Ayrıca, CMake hedeflerini uzak bir macOS sisteminde başlatabilir ve ardından GDB veya LLDB tarafından yedeklenen Visual Studio hata ayıklayıcısında uzaktan hata ayıklayabilirsiniz.
  • Artık LLDB veya GDB ile Visual Studio'dan uzak bir macOS sisteminde çekirdek dökümlerinde hata ayıklayabilirsiniz.
  • Visual Studio ile birlikte gönderilen ve LLVM sürümleri Clang v13'e yükseltilir.
  • Visual Studio'nun CMake tümleştirmesi yalnızca açık çalışma alanının kökünde bir CMakeLists.txt tanımlandığında etkindir. çalışma alanının başka bir CMakeLists.txt düzeyinde tanımlanmışsa Visual Studio'nun CMake tümleştirmesini bir bildirimle etkinleştirmeniz istenir.
  • Windows>Embedded Yazmaçlarında Hata Ayıklama>aracılığıyla sağlanan mikrodenetleyiciler ve gerçek zamanlı işletim sistemleri (RTOS) nesneleri üzerindeki çevre birimi yazmaçlarını incelemenize ve bunlarla etkileşim kurmanıza olanak tanıyan yeni görünümler
  • RTOS projeleri için Windows>RTOS Nesnesinde Hata Ayıklama>aracılığıyla kullanılabilen yeni bir iş parçacığı görünümü eklendi. Daha fazla bilgi için bkz . Visual Studio'da Katıştırılmış Yazılım Geliştirme.

Visual Studio sürüm 17.0'daki C++ ile ilgili yenilikler

Yayın Tarihi: Kasım 2021

Bunun hakkında daha fazla bilgi için: Bkz:
Visual Studio 17.0 IDE'deki yeni özellikler Visual Studio 2022 sürüm 17.0 Sürüm Notları
Standart Kitaplık (STL) birleştirilmiş C++26 ve C++23 özellikleri, C++20 hata raporları, LWG sorun çözümleri, performans iyileştirmeleri, gelişmiş davranış ve düzeltilen hatalar STL Değişiklik Günlüğü 17.0
Visual Studio 2022 17.0'da C++ dil uyumluluğu geliştirmeleri Visual Studio 2022 17.10'da C++ Uyumluluk geliştirmeleri, davranış değişiklikleri ve hata düzeltmeleri

Visual Studio 2022 sürüm 17.0'daki bazı yeni özelliklere genel bakış:

  • Visual Studio IDE, devenv.exeartık yerel bir 64 bit uygulamadır.
  • MSVC araç takımı artık hata ayıklama kayıtlarında sha-256 kaynak karması olarak varsayılandır. Daha önce araç takımı varsayılan olarak kaynak karması için MD5 kullanıyordu.
  • v143 derleme araçları artık Visual Studio yükleyicisi aracılığıyla ve tek başına derleme araçlarında kullanılabilir.

Yerel C++ için Çalışırken Yeniden Yükleme

  • C++ için Çalışırken Yeniden Yükleme, çalışan uygulamanızda birçok tür kod düzenlemesi yapmayı ve uygulama yürütmeyi kesme noktası gibi bir şeyle duraklatmaya gerek kalmadan bunları uygulamayı mümkün kılar.

Visual Studio 2022'de, uygulamanızı hata ayıklayıcıda başlattığınızda, uygulamanızı çalışmaya devam ederken değiştirmek için Çalışırken Yeniden Yükleme düğmesini kullanabilirsiniz. Bu deneyim yerel Düzenleme ve Devam Et ile desteklenir. Desteklenen düzenlemeler hakkında daha fazla bilgi için bkz . Düzenle ve Devam Et (C++).

  • Çalışırken Yeniden Yükleme, CMake ve Open Folder projelerini destekler.

WSL2 desteği

  • Artık SSH bağlantısı kurmadan WSL2'de yerel olarak derleyebilir ve hatalarını ayıklayabilirsiniz. Hem platformlar arası CMake projeleri hem de MSBuild tabanlı Linux projeleri desteklenir.

Geliştirilmiş CMake desteği

  • Visual Studio ile birlikte gönderilen CMake sürümü 3.21 sürümüne yükseltildi. Bu sürümde sunulanlar hakkında daha fazla bilgi için bkz . CMake 3.21 sürüm notları.

  • CMake Genel Bakış Sayfaları desteğine CMakePresets.jsongüncelleştirildi.

  • Artık CMake projelerinizi CMake 3.21 ve v3 ile yapılandırabilir ve CMakePresets.json oluşturabilirsiniz.

  • Visual Studio artık içindeki CMakePresets.jsonseçeneğini destekliyorbuildPresets.targets. Bu seçenek, CMake projenizde hedeflerin bir alt kümesini oluşturmanıza olanak tanır.

  • CMake projelerindeki Proje menüsü kolaylaştırılmıştır ve "Önbelleği Sil ve Yeniden Yapılandır" ve "Önbelleği Görüntüle" seçeneklerini kullanıma sunar.

  • /scanDependencies P1689R5'de açıklandığı gibi CMake projeleri için C++20 modül bağımlılıklarını listelemek için derleyici seçeneğini uyguladık. Bu, CMake ile modül tabanlı projeler oluşturmaya yönelik bir destek adımıdır ve bu desteği sonraki sürümlerde tamamlamaya çalışıyoruz.

Standart Kitaplık geliştirmeleri

Standart Kitaplık (STL) iyileştirmeleri burada vurgulanır'ı seçin. Yeni işlevlerin, değişikliklerin, hata düzeltmelerinin ve performans iyileştirmelerinin kapsamlı bir listesi için STL ekibinin Değişiklik Günlüğü'ne bakın.

  • Aşağıdaki türlerin görüntülenme biçimini geliştirmek için hata ayıklama görselleştiricileri eklendi: , , (ve yineleyicileri), default_sentinel_t, unreachable_sentinel_t, ranges::empty_view, ranges::single_view, ranges::iota_view (ve yineleyicisi/sentinel), ranges::ref_view, thread, thread::id, jthreadve u8string bind_front()source_locationfilesystem::path
  • stoi() ve içindeki <string> işlev ailesine üye işlevleri<locale>, has_facet()ve aileleri gibi collate çeşitli işlevlere isalnum() tolower() eklendi[[nodiscard]].
  • P0980R1 Made std::string constexpr in VS 2019 16.10. Artık Clang için destekleniyor.
  • P1004R2 Made std::vector constexprin VS 2019 16.10. Artık Clang için destekleniyor.

Vurgulanan C++23 özellikleri

  • P1048R1 Eklendiis_scoped_enum, bir türün kapsamlı bir numaralandırma olup olmadığını algılayan C++ Standart kitaplığı için yeni bir özelliktir.
  • out_ptr()P1132R7,inout_ptr()
  • contains() ve için basic_string P1679R3basic_string_view
  • to_underlying() Numaralandırmalar için P1682R3
  • P2162R2 Devralma izni verstd::variant
  • P2166R1 ve basic_string_view oluşturmasını nullptryasaklabasic_string. Bu değişiklik, kaynağı bozan bir değişikliktir. Daha önce çalışma zamanında tanımsız davranış gösteren kod artık derleyici hatalarıyla reddediliyor.
  • P2186R2 Çöp toplama desteği kaldırıldı. Bu değişiklik , , undeclare_reachable, declare_no_pointers, undeclare_no_pointers, get_pointer_safetyöğesini kaldırırdeclare_reachable. Daha önce bu işlevlerin hiçbir etkisi yoktu.

Vurgulanan performans geliştirmeleri

  • <format>şimdi veya vectoriçin basic_string öğesine ne zaman yazılıyor back_insert_iterator olduğunu algılar ve kapsayıcıda end() daha hızlı bir çağrı insert() yapar.
  • ve'nin std::find() std::count() performansını 19x ve 26x (yüzde değil, kat) için vector<bool> geliştirdik.
  • için performansını geliştirdik std::count()vector<bool>
  • std::byte artık ve ile aynı performansa unsigned char reverse() sahiptir variant::swap()

Clang ve LLVM desteği

  • Visual Studio ile birlikte gönderilen LLVM araçları LLVM 12'ye yükseltilir. Daha fazla bilgi için bkz . LLVM sürüm notları.

  • Clang-cl desteği LLVM 12 olarak güncelleştirildi.

  • Artık LLDB kullanarak Visual Studio'dan uzak bir sistemde çalışan işlemlerin hatalarını ayıklayabilirsiniz.

C++ AMP kullanım dışı

  • C++ AMP üst bilgileri artık kullanım dışı bırakılmıştır. C++ projesine dahil <amp.h> olmak derleme hataları oluşturur. Hataları susturmak için tanımlayın _SILENCE_AMP_DEPRECATION_WARNINGS. Daha fazla bilgi için amp kullanımdan kaldırma bağlantılarımıza bakın.

IntelliSense geliştirmeleri

  • İçeri aktarılan Modüller ve Üst Bilgi Birimlerindeki türler için gezinti ve söz dizimi vurgulama özelliği sağlarken C++ IntelliSense'te geliştirmeler yaptık. IntelliSense, bizim için etkin bir yatırım alanıdır. Geliştirmemize yardımcı olun: Geri Bildirim Gönderme Yardımını>kullanarak geri bildiriminizi Geliştirici Topluluğu paylaşın.
  • Önbelleğe alınmış üst bilgi kullanımı ve sembol veritabanı erişimini iyileştirerek C++ IntelliSense performansını iyileştirdik ve kodunuza erişmek için geliştirilmiş yükleme süreleri sağladık.
  • C++ için IntelliSense Kod Linter'i artık varsayılan olarak açıktır ve anında tür olarak öneriler sağlar ve yaygın kod hataları için öneriler düzeltir.
  • CMake projeleri için C++ IntelliSense artık bir görünen adla ön ayar kullanılırken çalışıyor.

C++ İş yükü güncelleştirmeleri

  • C++ Mobil Geliştirme iş yükünde NDK r21 LTS'ye güncelleştirildi.
  • C++ ile oyun geliştirme iş yükü artık Visual Studio 2022 desteğiyle en son Unreal Engine'i yüklüyor.

Kod analizi geliştirmeleri

  • Kod analizi artık ek açıklama ekleyen _Check_return_ veya _Must_inspect_result_ denetlenmesi gereken işlevlerin değerlerini döndürmeyi zorunlu kılacak.
  • Kod çözümleme araçlarımızda null işaretçi başvuru algılama geliştirildi.
  • Kod analizi için gsl::not_null desteği eklendi.
  • Derleyici seçeneği altında /fsanitize=fuzzer Libfuzzer desteği.

Eski sürümler için sürüm notları

Eski C++ sürümleri için sürüm notları da kullanılabilir:

Bilinen sorunlar

C++ IntelliSense

Visual Studio 2022'de C++ için diğer açık sorunlar ve kullanılabilir geçici çözümler hakkında daha fazla bilgi için C++ Geliştirici Topluluğu sorunları listesine bakın.

Görüş ve öneriler

Sizden haber almaktan memnun oluruz! Yükleyicinin veya Visual Studio IDE'nin sağ üst köşesindeki Geri Bildirim Gönder simgesini kullanarak veya Geri Bildirim Gönderme Yardımı'ndan Bir>Sorun Bildirebilir veya Özellik Önerebilirsiniz. Visual Studio Geliştirici Topluluğu kullanarak sorunlarınızı izleyebilir ve burada açıklama ekleyebilir veya çözüm bulabilirsiniz. Ayrıca Canlı Sohbet desteğimizden ücretsiz yükleme yardımı alabilirsiniz.

Bloglar

Tüm yeni sürümlerden haberdar olmak için Microsoft Geliştirici Blogları sitesinde sağlanan içgörülerden ve önerilerden yararlanın. Bloglar, çok çeşitli özelliklerle ilgili ayrıntılı gönderiler içerir. C++ Ekip Blogu ve Visual Studio Blogu özellikle ilgi çekicidir.