Aracılığıyla paylaş


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.14'teki C++ ile ilgili yenilikler

Mayıs 2025'te yayınlandı

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

Bazı yeni özelliklerin hızlıca öne çıkarılması:

  • C++ Dinamik Hata Ayıklama, performansı etkilemeden iyileştirilmiş kodda hata ayıklamanıza olanak tanır. Daha fazla bilgi için bkz. C++ Dinamik Hata Ayıklama.

  • Uygulanan C++23 özellikleri (/std:c++latest veya /std:c++23preview gerektirir):

  • GitHub Copilot ile otomatik olarak belge açıklamaları oluşturun. Daha fazla bilgi için bkz. Visual Studio'da otomatik belge açıklama oluşturma tanıtımı.

  • Visual Studio'da Model Seçici'yi kullanarak GitHub Copilot için yapay zeka modelinizi seçin. Daha fazla bilgi için bkz. Copilot Chat için yapay zeka modelini değiştirme. Bu ekran görüntüsü, GitHub Copilot sohbet penceresinin alt kısmındaki Model Seçiciyi gösterir:

    Model Seçici açılan listesinin vurgulandığı GitHub Copilot sohbet penceresinin ekran görüntüsü.

    Model Seçici menüsünün açılan listesi açık. Seçenekler şunlardır: GPT-4o, o3-mini, Claude 3.7 Sonnet Thinking ve diğerleri.

  • Unreal Engine tümleştirme geliştirmeleri:

    • Visual Studio C++ hata ayıklayıcısı artık Gerçek Dışı Altyapı Şemalarını destekliyor.
    • Dosya, modül ve eklenti oluşturmaya yönelik komutlar Visual Studio'da yerel olarak kullanılabilir.
  • Yeni derleyici bayrağı /forceInterlockedFunctions, çalışma zamanında CPU kapasitesine bağlı olarak Armv8.0'a ait yükleme ve depolama münhasır yönergeleri ile Armv8.1 Büyük Sistem Uzantısı (LSE) atomik yönergeleri arasında dinamik olarak seçim yapar.

  • Visual Studio'da CMake modülleri için IntelliSense tabanlı tamamlamalar ve hızlı bilgiler için destek eklendi. Kullanılabilir tüm CMake modüllerini görüntüleyebilirsiniz ve başvuruda bulunulmuş bir CMake modülünün üzerine geldiğinizde IntelliSense seçilen modül hakkında daha fazla bilgi sağlar:

    C Yazdırma Yardımcılarını Açıklayan intellisense tarafından verilen ekran görüntüsü.

    Ekran görüntüsü, C Listeleri Oluştur .txt dosyasındaki bir düzenlemenin görüntüsüdür. İmleç include ( CMakePrintHelpers ) üzerindedir. IntelliSense diyor ki: Yazdırma özellikleri ve değişkenleri için kolaylık işlevleri, hata ayıklama için yararlıdır.

    CMake modülü adını CMakeLists.txt veya diğer CMake betik dosyalarınıza yazmaya başladığınızda, IntelliSense seçim yapabileceğiniz kullanılabilir modüllerin bir listesini sunar.

    Include deyimi için intellisense'in ekran görüntüsü.

    Ekran görüntüsü, C Listeleri Oluştur .txt dosyasındaki bir düzenlemenin görüntüsüdür. İmleç include ( C Make) üzerindedir. Intellisense açılan listesinde C Make Add Fortran Subdirectory, C Make Dependent Option ve diğer girdiler bulunur.

  • Yönergeler Destek Kitaplığı (GSL) 4.2.0: Bu sürüm, için gsl::spanperformans iyileştirmeleri, yeni özellikler ve C++ standartlarıyla daha iyi hizalama içerir. Daha fazla bilgi için bkz. Yönergeler Destek Kitaplığı v4.2.0 Duyuruları.

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

Şubat 2025'te yayınlandı

Bunun hakkında daha fazla bilgi için: Bkz:
C++ geliştiricilerine yönelik yenilikler Visual Studio 2022 17.13'teki C++ Geliştiricilerine Yönelik Yenilikler
Standart Kitaplık (STL) C++26 ve C++23 özellikleri, Dil Çalışma Grubu (LWG) sorun çözümleri, performans iyileştirmeleri, gelişmiş davranış ve düzeltilen hatalar STL Değişiklik Günlüğü 17.13
IDE'deki yeni özellikler Visual Studio 2022 sürüm 17.13 Sürüm Notları
C++ dil güncelleştirmeleri Visual Studio 2022 17.13'teki MSVC derleyici güncellemeleri
C++ dil uyumluluğu geliştirmeleri Visual Studio 2022 17.13 'da C++ Uyumluluğu iyileştirmeleri, davranış değişiklikleri ve hata düzeltmeleri

Bazı yeni özelliklerin hızlı bir vurgusu:

  • C++ dil geliştirmeleri

    • C++ Dil Standardı'nı /std:c++23previewolarak ayarlayarak C++23 önizleme özelliklerini deneyin. Bu ayar en son C++23 özelliklerini ve hata düzeltmelerini etkinleştirir. Daha fazla bilgi için bkz. /std (Dil Standart Sürümünü Belirtme).

    • C++23'ün, özellikle döngü yazarken kesilmeleri veya işaretli karşılaştırma uyumsuzluklarını önlemeye yardımcı olan size_t literal soneki desteği. Örneğin:

      // Infinite loop if v.size > max unsigned int 
      for (auto i = 0u; i < v.size(); ++i)
      { 
        ...
      } 
      
      // Fixed because of uz literal 
      for (auto i = 0uz; i < v.size(); ++i)
      { 
        ...
      } 
      
    • x86 ve x64 üzerinde kod oluşturma için vektör uzunlukları desteği. Daha fazla bilgi için bkz. /vlen.

    • Intel Advanced Vector Extensions 10 sürüm 1 desteği. /arch:AVX10.1hakkında daha fazla bilgi için bkz. /arch (x64).

  • Standart Kütüphane Geliştirmeleri

    • Coroutines için standart kütüphane desteği. P2502R2bu örnekte fib fonksiyonu bir eş yordamdır. co_yield deyimi yürütülürken, fib askıya alınır ve değer çağırana döndürülür. El ile durum işlemeye gerek kalmadan daha fazla değer üretmek için daha sonra fib coroutine devam edebilirsiniz:

      std::generator<int> fib()
      { 
        auto a = 0, b = 1; 
      
        while (true)
        { 
            co_yield std::exchange(a, std::exchange(b, a + b)); 
        }
      } 
      
      int answer_to_the_universe()
      { 
        auto rng = fib() | std::views::drop(6) | std::views::take(3); 
        return std::ranges::fold_left(std::move(range), 0, std::plus{}); 
      } 
      
  • Şunlar system_clock, high_resolution_clockve chrono_literals yaygın olarak dahil edilen bir iç üst bilgiden <chrono>'e taşındı. system_clock gibi türlerin veya 1729ms gibi kullanıcı tanımlı değişmez değerlerin tanınmadığı derleyici hataları görürseniz, <chrono>ekleyin.

  • Metin dizelerinden bitset oluşturucularının ve basic_string::find_last_of(), remove(), ranges::remove ile minmax_element() ve minmax() algoritma ailelerinin vektörleştirilmiş uygulamaları iyileştirildi.

  • Vektörleştirilmiş uygulamalar eklendi:

    • 1 bayt ve 2 baytlık öğeler için find_end() ve ranges::find_end.
    • Alt dize için basic_string::find() ve basic_string::rfind().
    • Tek bir karakter için basic_string::rfind().
  • Birleştirilmiş C++23 Hata Raporları:

    • P3107R5<print>verimli bir şekilde uygulanmasına izin ver.
    • Daha fazla tür daha hızlı, daha az bellekle. P3235R3std::print
  • GitHub Yardımcı Pilotu

    • GitHub Copilot Free kullanıma sunuldu. Ücretsiz olarak ayda 2.000 kod tamamlama ve 50 sohbet isteği alın.

    • GitHub Copilot kod tamamlamaları, kod yazarken satır içi otomatik tamamlama önerileri sağlar. C++ geliştiricilerinin deneyimini geliştirmek için GitHub Copilot bağlam olarak diğer ilgili dosyaları içerir. Bu, daha ilgili ve doğru öneriler sunarken hataları azaltır.

    • Artık Git Değişiklikleri penceresinden GitHub Copilot'tan kod incelemesi isteyebilirsiniz:

      GitHub Copilot Gözden Geçir düğmesinin vurgulandığı Git Değişiklikleri penceresinin ekran görüntüsü.

      Git Değişiklikleri penceresi açık ve GitHub Copilot İncele düğmesi vurgulanmış.

      GitHub Copilot olası sorunları arar ve bunlar için açıklamalar oluşturur:

      GitHub Copilot'un bir sorunu açıklayan ekran görüntüsü.

      GitHub Copilot, "if (is_enabled_) new_site.disable()" satırıyla ilgili bir sorun buldu. Bir hata olabileceğini ve kesme noktası etkinse amacın yeni siteyi etkinleştirmek olduğundan, muhtemelen (is_enabled_) new_site.enable() olması gerektiğini belirtiyor.

      Bu özelliği kullanmak için aşağıdakilerin açık olduğundan emin olun:

      • Araçlar>Seçenekler>Önizleme Özellikleri>Çekme İsteği Yorumları
      • Araçlar>Seçenekler>GitHub>Copilot>Kaynak Denetimi Tümleştirmesi>Git önizleme özelliklerini etkinleştir.
    • GitHub Copilot Edits, projenizdeki birden çok dosyada değişiklik yapabilen yeni bir özelliktir. Yeni bir Düzenleme seansı başlatmak için GitHub Copilot Sohbet penceresinin üst kısmındaki Yeni düzenleme seansı oluştur seçeneğine Tıklayın.

      GitHub Copilot Sohbet penceresinin ekran görüntüsü. Yeni düzenleme oturumu oluştur düğmesi vurgulanır.

      Yapmak istediğiniz değişiklikleri açıklayın ve Copilot ilgili düzenlemeleri önerir. Düzenlemelerin önizlemesini tek tek görebilir ve istediklerinizi kabul edebilir veya düzeltmeler yapabilirsiniz:

      Düzenlediği dosyaları görüntüleyen GitHub Copilot Sohbet penceresinin ekran görüntüsü.

      GitHub Copilot, yaptığı değişikliklerin özetini (1 gibi) görüntülüyor. include/libsdb/breakpoint.hpp" ve 2 içinde yeni bir alt sınıf range_breakpoint oluşturun. src/breakpoint.cpp içinde range_breakpoint sınıfını uygulayın. Değişiklikleri kabul etme seçeneği görüntülenir.

      Daha fazla bilgi için bkz. GitHub Copilot Editsile birden çok dosya üzerinde daha verimli bir şekilde çalışın.

  • CMake

    • Artık CMake Presets v9'i destekliyor. Ön ayar dahil etme alanındaki yeni makro genişletmeleri. Daha fazla bilgi için resmi CMake belgelerinde Makro genişletme bölümüne bakın.

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

Kasım 2024'te yayınlandı

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

Bazı yeni özelliklerin hızlıca öne çıkarılması:

  • Standart Kitaplık Geliştirmeleri
    • C++23 Biçimlendirme aralıkları (P2286R8) uygulaması tamamlandı. Kapsayıcı bağdaştırıcıları stack, queue ve priority_queue için biçimlendiriciler eklendi.
    • Çok boyutlu alt simge işleçleri eklendi, ayrıca <mdspan>'yi de destekler. Örneğin: print("m[{}, {}]: '{}'; ", i, j, m[i, j]).
  • C++ ile oyun geliştirme
  • İçgörüler Oluşturma
    • Seçili dosyalarda Build Insights'ı çalıştırabilirsiniz. Çözüm Gezgini istediğiniz dosyaları seçin, sağ tıklayın ve Seçili Dosyalarda Derleme İçgörüleri Çalıştır'ı seçin:Çözüm Gezgini dosyaların ekran görüntüsü. Bağlam menüsü açıktır ve Seçili Dosyalarda Derleme İçgörülerini Çalıştır seçeneği vurgulanır.
    • Build Insights sonuçlarını projeye göre filtreleyebilirsiniz. Filtre sütunu üst bilgisindeki filtre düğmesine tıklayın ve sonuçlarını görmek istediğiniz projeleri seçin: Dahil Edilen Dosyalar sekmesinin açık olduğu Derleme İçgörüleri penceresinin ekran görüntüsü. Filtre düğmesi seçildi ve bir proje listesi görüntülenir. İki proje'nin yanındaki onay kutuları denetlenir.
    • Derleme İçgörüleri penceresindeki sekmeler için kısa bir açıklama ve ayrıntılı bir açıklama için belgelerin bağlantısını görmek için Derleme İçgörüleri penceresinde soru işareti simgesine tıklayın: Açıklamaları görüntüle düğmesinin (daire içinde soru işareti) vurgulandığı İçgörüler Oluştur penceresinin ekran görüntüsü.
  • GitHub Yardımcı Pilotu
    • Bir değişkenin değerinin yanındaki Copilot’a Sor seçeneğine tıklayarak, mevcut duruma neyin yol açtığı hakkında yapay zeka destekli içgörüler edinebilirsiniz. Örneğin, aşağıdaki programın döngü koşulunda bire bir hata var:

    OtomatikLer penceresinin ekran görüntüsü. Adlı değişken NULL'dir. Yanındaki Copilot'a Sor simgesi vurgulanır.

    Bu soruna neden olan kod: for (auto it = h.animals_.begin(); it <= h.animals_.end(); it++).

    it değişkeni için Copilot'a Sor simgesine tıklarsanız, bunun neden <NULL>olduğunu bildirir:

    GitHub Copilot penceresinin ekran görüntüsü.

    Bu hata, int calculate_number_of_cats(const house & h) olarak tanımlanan bir fonksiyonun içindedir. GitHub Copilot iletisi şunları söyler: "İfadenin değeri NULL'dur, bu da demektir ki yineleyici, vektör animals_ içinde geçerli bir öğeye işaret etmiyor." Programınız bağlamında, kedi nesnelerinin sayısını saymak amacıyla ev nesnesindeki animals_ vektörü üzerinde yinelenmesi gerekir. Neden null. Yerel ve çağrı yığını bağlamı temelinde: h ev nesnesi boş bir animals_ vektörü (boyut=0) içerir. Döngü koşulu it <= h.animals_.end() yanlış. != h.animals_.end() olmalıdır."

    • Hatalar ve önerilen bir düzeltme hakkında yardım almak için Visual Studio Hata Listesi bölümündeki Copilot'a Sor'a tıklayabilirsiniz. Örneğin:

    Hata Listesi penceresinin ekran görüntüsü.

    Silinen bir işlevi referans almaya çalışan unique_ptr hatası yanında Copilot'a Sor simgesi vurgulanmıştır.

    Copilot'a Sor'a tıklarsanız, size hatayı anlatır.

    Hata için GitHub Copilot açıklamasının ekran görüntüsü.

    Copilot iletisi şunları söyler: "Hatanın nedeni, aralık tabanlı for döngüsünün std::unique_ptr nesnelerini kopyalamaya çalışması ve std::unique_ptr kopyalanamadığından izin verilmemesidir. Bunu düzeltmek için, std::unique_ptr nesnelerini kopyalamaktan kaçınmak üzere bir referans kullanarak döngüyü değiştirdim. Bu şekilde, döngü std::unique_ptr nesnelerine yönelik başvurular üzerinde yinelenir, ki bu da izin verilen bir işlemdir.

  • Hata ayıklama
    • mutex, recursive_mutex ve move_iterator için yeni hata ayıklama görselleştiricileri.
    • Hata ayıklayıcı artık dönüş değerlerini satır içinde görüntüler: 8,25 değerini gösteren araç ipucunun ekran görüntüsü. Bu, geçilen return deyiminden sonraki ifadenin sonucudur.

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ı, Dil Çalışma Grubu (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 std::range_formatter'ı ve std::pair ile std::tuple için biçimlendiricileri içeriyor.
    • 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(), replace_copy_if(), ranges::replace_copy, ranges::replace_copy_if ve find_first_of()gibi ranges::find_first_ofçeşitli algoritmalar için geliştirilmiş vektörleştirme, mismatch(), ranges::mismatch, count(), ranges::count, find()ranges::find, ranges::find_last, ve 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 Unreal Engine sınıfları, modülleri ve eklentileri ekleme.
    • Yeni Unreal Engine araç çubuğu, Visual Studio'dan Unreal Engine 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 Unreal Engine Araç Çubuğu başlığına bakın.
    • 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 CMakeLists.txt dosyanızda bir kesme noktası ayarlayın ve ardından Project>CMake Hata Ayıklama ile Önbelleği Yapılandır seçeneğine gidin.
  • GitHub Yardımcı Pilotu

    • 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çeneğini seçin. Adlandırma önerileri oluşturmak için GitHub Copilot sparkle simgesini seçin.

  • Hata ayıklama

    • C++ dilinde koşullu kesme noktaları daha hızlıdır.
  • Tanılama geliştirmeleri

    • Şablon bağımsız değişkenlerinde birden fazla std::get<T> örneğine sahip bir std::tuple üzerinde T çağırırken 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 sağlanır. 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ı, Dil Çalışma Grubu (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, işaretçiler için biçim tanımlayıcıları kümesini, kullanırken tamsayılar için hali hazırda mevcut olanlarla daha uyumlu hale getiren P2510R3 Biçimlendirme İşaretçileri desteği ekledi. std::min_element, std::ranges::min ve arkadaşlarının vektörleştirilmiş uygulamaları geliş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ü.
  • Unreal Engine Eklentisi: Başlangıç maliyetlerini azaltacak şekilde Unreal Engine Eklentisi'nin arka planda çalışmasına olanak tanıyan yeni bir isteğe bağlı özellik vardır. Bu, Araçlar>Seçenekler>Unreal Engine aracılığıyla etkinleştirilen bir tercih ö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ğı Çekme İsteği Yorumları'nı Seçenekler>Ortam>Önizleme Özellikleri içinde 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. Deneyin: Yapay Zeka Tarafından Oluşturulan Çekme İsteği Açıklaması Ekle mini kalem simgesine Çekme İsteği Oluştur penceresi içinde tıklayın.
  • 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şlikte ve yükseklikte sınırlandırılır.

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

    Fare, std::filesystem::path vs_logo_path = "../images/vs_logo.png" satırının üzerinde duruyor. 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, otomatik veriler, yerel değişkenler, izleme pencereleri veya Veri İpuçları'ndan özelliklerin veya alanların adları ve değerleri üzerinde çalışır.
  • İşleme Bağlan İletişim Kutusu: İşleme Bağlan 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:

    Visual Studio Yükleyicisi GitHub Copilot yükleme seçeneği 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ış, Dil Çalışma Grubu (LWG) sorunu çö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ılama, yönergelerinizin #include ayrıntılı bir analizini sağlar. Bir #include öğesine sağ tıklayıp #include yönergelerini>#include yönergesi tanılamalarını etkinleştir seçeneğini seçerek bu özelliği etkinleştirin. #include her birinin üstünde, kodunuzun o #include dosyasına kaç kez başvurduğunu belirtir. Kodunuzun bu başlık dosyasından bir şey kullandığı konuma gitmek için referans bağlantısına tıklayın. yönergelerinizin derleme süresini görüntülemek için, DerlemeÇözümün Üzerinde Derleme İçgörülerini Çalıştır seçeneğine giderek Build Insights'ı çalıştırın.

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

    # include dosyasının üstünde bir **referans** bağlantısı ve bu # include dosyasına yapılan birçok referans (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 içerisindeki boyutları ve ofsetleri 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çenekler'e 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: ve , , ve , P2286R8 Biçimlendirme Aralıkları ve P0009R18 uyarınca C++23 Standard’ına uygulanan sonraki sözcük değişikliklerinin bir parçası olarak. Ayrıca, format() işaretçileri P2510R3 standardına göre 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ı, Dil Çalışma Grubu (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 fareyle geldiğinizde, Hızlı Bilgi boyut ve hizalama bilgilerini görünür.
  • Nesnenin durumunu değiştirmedikleri için üye işlevlerinin ne zaman işaretlendiğini öneren bir özellik const. Bir üye işlevinin üzerine gelin ve ampul simgesine tıklayarak işlevi const olarak 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 include'un üzerine gelebilir ve ampul menüsünü kullanarak o include'u veya kullanılmayan tüm includeları kaldırabilirsiniz. Diğer üst bilgiler aracılığıyla dolaylı olarak dahil edilen varlıklar için #include direktifleri de ekleyebilirsiniz. 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 Kod Parçacıkları ile, üyeler listenizde 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 Kılavuz: Derleme zamanında işlev inlining sorunlarını giderme ve Kılavuz: Derleme zamanı üzerindeki üst bilgi dosyası etkisini giderme bölümlerine bakın.
  • 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, Dil Çalışma Grubu (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 /std:clatest eklendi.
  • Unreal Engine projesi geliştirmeleri, daha hızlı IntelliSense ve söz dizimi renklendirmesi, tüm Unreal Engine Blueprint’lerini bulma yeteneği ve daha fazlasını içerir.

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'da C++ Geliştiricilerine Yönelik Yenilikler
Standart Kitaplık (STL) birleştirilmiş C++23 özellikleri, Dil Çalışma Grubu (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
  • Unreal Engine Günlük Görüntüleyicisi
  • VCPKG artık varsayılan olarak eklenmiştir
  • C++/CLI projelerine C++20 için başlangıç desteği ve aralıklar için bazı C++23 standart kütüphane ö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'deki C++ Geliştiricilerine Yönelik Yenilikler
Standart Kitaplık (STL) birleştirilmiş C++23 özellikleri, Dil Çalışma Grubu (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ük oluşturan adlandırılmış dönüştürmeleri önler. /permissive- veya bunu ima eden bir seçenek (örneğin, /std:c++20 veya std:c++latest) 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 işleçler (<stdatomic.h>) için ilk deneysel destek eklendi. Bu deneysel özelliği /experimental:c11atomics seçeneğiyle /std:c11 modunda veya sonrasında 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 Anında Yeniden Yükleme desteği eklendi.

  • C++ için Tanıma Git artık işlemin daha fazla zaman alabileceğini gösteren daha belli belirsiz bir işaret kullanıyor ve önceki sürümlerde kullanılan mod kullanı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 Unreal Blueprint varlığında değiştirilen temel sınıflardan gelen özellikleri görüntüleyebilirsiniz. Visual Studio'da UE Asset Inspector'ı açmak için bir C++ sınıfı veya özelliğine ait Blueprint referansına ç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
    • P2322R6ranges::fold_left, ranges::fold_right ve benzeri.
    • 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'deki C++ Geliştiricilerine Yönelik Yenilikler
Standart Kitaplık (STL) birleştirilmiş C++23 özellikleri, Dil Çalışma Grubu (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ılamaları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ği geliştirmeleri devam ediyor.

  • 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.
    • Kullanıcı /Od seçeneğini, daha sonraki bir sürümü, /Zc:nrvo seçeneğini veya /std:c++20 seçeneğini geçse bile, NRVO /permissive- altında etkinleştirilir.
    • Artık NRVO'yi /Zc:nrvo- seçeneğiyle 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 dahil edilen üst bilgilerin sırasına uyar. Önceden, bir PCH /Yu aracılığıyla kullanıldığında ve /FI aracılığıyla zorla dahil edildiğinde, IntelliSense, /FI aracılığıyla dahil edilen diğer üst bilgilerden önce bunu her zaman işlerdi. Bu davranış yapı 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 mevcut olduğunun 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 özelliği eklendi
    • NDK bileşeni LTS sürüm 23'e güncelleştirildi
  • Vektörleştirilmiş uygulamaları ranges::min_element(), ranges::max_element() ve ranges::minmax_element() eklendi.

  • 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

    • P2499R0string_view Aralık Oluşturucu Olmalıdırexplicit

    • P0849R8auto(x): dilde çözülme-kopyalama

      (Derleyici kısmı henüz uygulanmadı. Kitaplık kısmı, Aralıklar desteği ilk uygulandığında C++20 modu kullanılarak uygulandı.)

    • P0881R7 <stacktrace>

    • P2301R1 için diğer bir pmr ad eklestd::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 mevcut olduğunun 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, Dil Çalışma Grubu (LWG) sorun çözümleri, performans iyileştirmeleri, gelişmiş davranış ve düzeltilen hatalar STL Sürüm Notları 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çılır menüsü, 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'nde C++ ile oyun geliştirme iş yükünde Unreal Engine için IDE desteğinin seçili olduğundan emin olun. Bir UE projesi üzerinde çalışırken projeye veya bir klasöre/filtreye sağ tıklayın ve Ekle>UE Sınıfı seçeneğini seçin.
  • Tanıma Git özelliği artık önceki imzayı hatırlar ve daha uygun bir eşleşme bulunamadığında buna göre gezinir (örneğin, çiftten birinin imzasını elle değiştirdikten sonra). Go To All'un tepki süresi 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, durum 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.
  • Gömülü geliştirme için Debug>Windows>Serial Monitor üzerinden erişilebilen bir Seri Monitör penceresi eklendi.
  • C++ indekslemesinin 17.2 sürümüne kıyasla yaklaşık %66 iyileştirildiği belirtildi.
  • 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, Dil Çalışma Grubu (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:

  • C++23 özelliği olan thisdeducing için derleyici desteği, /std:c++latest seçeneği altında eklendi.
  • C++23 özelliklerinden "deducing this" ve "" 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, gömülü sistem geliştiricileri için çevre birimi kaydı ve RTOS görünümlerini tanıttık. 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ü'nün en üstüne sabitleyebilir.
  • Kalan C++20 hata raporlarının (geriye dönük uyarlamalar olarak da bilinir) uygulamaları eklendi. Tüm C++20 özellikleri artık seçeneği altında /std:c++20 kullanılabilir. Uygulanan backports hakkında daha fazla bilgi için Microsoft/STL GitHub deposundaki VS 2022 Changelog ve MSVC'nin STL'nin Tamamlanmasına dair /std:c++20 blog gönderisine bakın.
  • Çeşitli C++23 Kitaplığı özelliklerini /std:c++latest seçeneği altında ekledik. Yeni özellikler hakkında daha fazla bilgi için STL Deposu değişiklik günlüğüne bakın.
  • Include grafiğinin derinliğine bağlı olarak başlangıç C++ indekslemesinin performansı %20 artış gösterdi.

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, Dil Çalışma Grubu (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:

  • Yeni bir Yapılandırma Şablonu, CMakePresets.json ile uzak bir macOS sisteminde CMake projelerini yapılandırmak ve derlemek için 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 Clang ve LLVM sürümleri v13'e yükseltildi.
  • 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.
  • Yeni görünümler, Debug Windows Gömülü Kaydediciler 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ır.
  • DebugWindows>RTOS Nesneleri> aracılığıyla kullanılabilen RTOS projeleri için 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++23 ve C++26 özellikleri, C++20 hata raporları, Dil Çalışma Grubu (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ını varsayılan olarak kullanı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.

Doğal C++ için Anında Yeniden Yükleme

  • C++ için Anında Yeniden Yükleme, çalışan uygulamanızda birçok türde kod değişikliği yapmanıza ve uygulama yürütümünü bir kesme noktası gibi şeylerle duraklatmaya gerek duymadan bu değişiklikleri uygulamanıza olanak tanır.

Visual Studio 2022'de, uygulamanızı hata ayıklayıcıda başlattığınızda, devam eden uygulamanızı değiştirirken Hot Reload düğmesini kullanabilirsiniz. Bu deneyim, yerel Edit and Continue özelliği ile desteklenmektedir. Desteklenen düzenlemeler hakkında daha fazla bilgi için bkz . Düzenle ve Devam Et (C++).

  • Anında 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ı, CMakePresets.json desteklemek için güncellendi.

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

  • Visual Studio artık buildPresets.targets seçeneğini CMakePresets.json içinde destekliyor. 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 öne çıkarılmıştır. 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: source_location, bind_front(), u8string (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 ve filesystem::path
  • [[nodiscard]], stoi() işlev ailesine ve <string>'deki çeşitli işlevlere, <locale>'deki collate üye işlevler, has_facet(), ayrıca isalnum() ve tolower() ailelerine eklendi.
  • P0980R1std::stringconstexpr VS 2019 16.10'da yapıldı. Artık Clang için destekleniyor.
  • VS 2019 16.10'da yapılan P1004R2std::vectorconstexpr. 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()
  • P1679R3contains() için basic_string ve basic_string_view
  • P1682R3to_underlying() Sıralamalar için
  • P2162R2std::variant devralmayı sağlar
  • P2166R1, basic_string, basic_string_view öğelerini nullptr kullanarak oluşturmayı yasaklar. 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 declare_reachable, undeclare_reachable, declare_no_pointers, undeclare_no_pointers ve get_pointer_safety öğelerini kaldırır. Daha önce bu işlevlerin hiçbir etkisi yoktu.

Vurgulanan performans geliştirmeleri

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

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 <amp.h> dahil etmek derleme hatalarına neden olur. 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 bildiriminizi Geliştirici Topluluğu'nda paylaşmak için Yardım>Geri Bildirim Gönder seçeneğini kullanı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 yazarken anında öneriler ve yaygın kod hatalarını düzeltmek için çözüm önerileri sağlar.
  • CMake projeleri için C++ IntelliSense artık görünen adı olan bir ön ayar kullanıldığında ç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 _Check_return_ veya _Must_inspect_result_ ile açıklanan işlevlerin döndürülen değerlerinin kontrol edilmesini zorunlu kılmaktadır.
  • Kod çözümleme araçlarımızda null işaretçi başvurusunun tespiti geliştirildi.
  • Kod analizi için gsl::not_null desteği eklendi.
  • /fsanitize=fuzzer derleyici seçeneği kapsamında 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 Bir Sorun Bildirin veya Özellik Önerin ya da Yardım>Geri Bildirim Gönder seçeneklerinden geri bildirimde bulunabilirsiniz. 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.