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.
- Tüm Visual Studio'daki yenilikler hakkında daha fazla bilgi için bkz . Visual Studio 2022'deki yenilikler.
- 2023'te Visual Studio, VS Code ve vcpkg'deki C++ iyileştirmelerine genel bakış için bkz . C++ geliştirmeleri yılı
- C++ belgelerindeki yenilikler hakkında bilgi için bkz . Microsoft C++ belgeleri: Yenilikler.
Visual Studio sürüm 17.9'da C++ ile ilgili yenilikler
Kısaca, yeni özelliklerden bazıları şunlardır:
#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 Derleme Derleme Analizler'ni çalıştırarak Çözüm>Derlemesinde Derleme>Çalıştırma Analizler'ne geçin.# include dosyasının üstünde bir **başvuru** bağlantısı ve bu # include dosyasına yapılan başvuruların bir numarası bulunur (bu durumda 1). 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 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'negidin 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.
"Ö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
vestd::span
formattable
,range_format
,format_kind
veset_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.
C++ arka uç güncelleştirmelerinin özeti için bkz . Visual Studio 2022 sürüm 17.3'ten bu yana MSVC Arka uç güncelleştirmeleri.
Visual Studio 17.9 IDE'deki yeni özelliklerin özeti için bkz . Visual Studio 2022 sürüm 17.9 Sürüm Notları.
Visual Studio sürüm 17.8'deki C++ ile ilgili yenilikler
Kısaca, yeni özelliklerden bazıları şunlardır:
- Çı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 olarakconst
iş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.
- Derleme Analizler 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ı gibi bir işlevin derlenmesi hakkında ek bilgiler görebilirsiniz.
- 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 17.8'deki yeni C++ özelliklerinin kapsamlı bir özeti için bkz . Visual Studio 2022 17.8'deki C++ Geliştiricileri için Yenilikler.
Visual Studio 17.8 IDE'deki yeni özelliklerin özeti için bkz . Visual Studio 2022 sürüm 17.8 Sürüm Notları.
Visual Studio sürüm 17.7'deki C++ ile ilgili yenilikler
Visual Studio 17.7'deki yeni C++ özelliklerinin özeti için bkz . Visual Studio 2022 17.7'de C++ Geliştiricileri için Yenilikler.
Kısaca, yeni özelliklerden bazıları şunlardır:
- 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++ derleme Analizler
- 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.
Oyun geliştirmeye özgü yeni C++ özelliklerinin özeti için bkz . C++ Oyun Geliştirme için Visual Studio 2022'nin Gücünü Ortaya Çıkarma
Visual Studio 17.7 IDE'deki yeni özelliklerin özeti için bkz . Visual Studio 2022 sürüm 17.7 Sürüm Notları.
Visual Studio sürüm 17.6'daki C++ ile ilgili yenilikler
Visual Studio 17.6'daki yeni C++ özelliklerinin özeti için bkz . Visual Studio 2022 17.6'da C++ Geliştiricileri için Yenilikler.
Kısaca, yeni özelliklerden bazıları şunlardır: CMake betik 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, C++/CLI projelerinde C++20 için ilk destek, VCPKG artık varsayılan olarak eklenir ve aralıklar için bazı C++23 standart kitaplık özellikleri. Standart kitaplığa eklenen yeni özelliklerin tam listesini görmek için bkz . STL değişiklik günlüğü.
Visual Studio 17.6 IDE'deki yeni özelliklerin özeti için bkz . Visual Studio 2022 sürüm 17.6 Sürüm Notları.
Visual Studio sürüm 17.5'teki C++ ile ilgili yenilikler
Sürüm 17.5'te Visual Studio'daki yeni C++ özelliklerinin özeti için bkz . Visual Studio 2022 17.5'teki C++ Geliştiricileri için Yenilikler. Visual Studio IDE sürüm 17.5'teki yeni özelliklerin ve hata düzeltmelerinin özeti için bkz . Visual Studio 2022 sürüm 17.5 Sürüm Notları.
std::move
,std::forward
,std::move_if_noexcept
vestd::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++latest
bunu ima eden bir seçenek) gereklidir.Yukarıdaki öğeyi desteklemek için 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:
Visual Studio sürüm 17.4'teki C++ ile ilgili yenilikler
Sürüm 17.4'teki Visual Studio'daki yeni özelliklerin ve hata düzeltmelerinin özeti için bkz . Visual Studio 2022 sürüm 17.4 Sürüm Notları ve Visual Studio 2022 17.4'teki C++ Geliştiricileri için Yenilikler.
Ö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/FI
zorla dahil edildiğinde IntelliSense, aracılığıyla/FI
dahil 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: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
Sürüm 17.3'teki Visual Studio'daki yeni özelliklerin ve hata düzeltmelerinin özeti için bkz . Visual Studio 2022 sürüm 17.3 Sürüm Notları ve C++ geliştirmeleri.
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şkenlereenum
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
Sürüm 17.2'de Visual Studio'daki yeni özelliklerin ve hata düzeltmelerinin özeti için bkz . Visual Studio 2022 sürüm 17.1 Sürüm Notları.
seçeneği altında
/std:c++latest
sağlanan C++23 özelliği içinthis
derleyici desteği eklendi.ve
if consteval
C++23 özelliklerithis
iç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
Sürüm 17.1'de Visual Studio'daki yeni özelliklerin ve hata düzeltmelerinin özeti için bkz . Visual Studio 2022 sürüm 17.1 Sürüm Notları.
- ile
CMakePresets.json
uzak 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ümleriClang
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 birCMakeLists.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
Visual Studio'daki yeni özelliklerin ve hata düzeltmelerinin özeti için bkz . Visual Studio 2022 sürüm 17.0 Sürüm Notları.
Visual Studio IDE,
devenv.exe
artı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.json
gü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.json
seç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
,jthread
veu8string
bind_front()
source_location
filesystem::path
stoi()
ve içindeki<string>
işlev ailesine üye işlevleri<locale>
,has_facet()
ve aileleri gibicollate
çeşitli işlevlereisalnum()
tolower()
eklendi[[nodiscard]]
.- P0980R1 Made
std::string
constexpr
in VS 2019 16.10. Artık Clang için destekleniyor. - P1004R2 Made
std::vector
constexpr
in VS 2019 16.10. Artık Clang için destekleniyor.
Vurgulanan C++23 özellikleri
- P1048R1 Eklendi
is_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çinbasic_string
P1679R3basic_string_view
to_underlying()
Numaralandırmalar için P1682R3- P2162R2 Devralma izni ver
std::variant
- P2166R1 ve
basic_string_view
oluşturmasınıbasic_string
nullptr
yasakla. 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 veyavector
içinbasic_string
öğesine ne zaman yazılıyorback_insert_iterator
olduğunu algılar ve kapsayıcıdaend()
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çinvector<bool>
geliştirdik. - için performansını geliştirdik
std::count()
vector<bool>
std::byte
artık ve ile aynı performansaunsigned char
reverse()
sahiptirvariant::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 mevcuttur. Visual Studio 2019'da C++ ile ilgili yenilikler hakkında bilgi için bkz . Visual Studio 2019'da C++ için yenilikler. Visual Studio 2017'de C++ ile ilgili yenilikler hakkında bilgi için bkz . Visual Studio 2017'de C++ için yenilikler. Önceki sürümlerdeki yenilikler hakkında bilgi için bkz . Visual C++ Yenilikler 2003 ile 2015 arasında.
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 Bloguve Visual Studio Blogu özellikle ilgi çekicidir.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin