Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Visual Studio 2022 menghadirkan banyak pembaruan dan perbaikan untuk pengkompilasi dan alat Microsoft C++. Visual Studio IDE juga menawarkan peningkatan performa serta produktivitas yang signifikan, dan sekarang beroperasi secara spesifik sebagai aplikasi 64-bit.
- Untuk informasi selengkapnya tentang apa yang baru di semua Visual Studio, lihat Apa yang baru di Visual Studio 2022.
- Untuk informasi tentang tanggal build versi, lihat Riwayat Rilis Visual Studio 2022.
Apa yang baru untuk C++ di Visual Studio versi 17.14
Dirilis Mei 2025
Untuk informasi lebih lanjut tentang | Lihat |
---|---|
Apa yang baru untuk pengembang C++ | Apa yang Baru untuk Pengembang C++ di Visual Studio 2022 17.14 |
Standard Library (STL) menggabungkan fitur C++26 dan C++23, resolusi masalah Language Working Group (LWG), peningkatan performa, peningkatan perilaku, dan bug yang diperbaiki | STL Changelog 17.14 |
Fitur baru di IDE | Catatan Rilis Visual Studio 2022 versi 17.14 |
Pembaruan bahasa C++ | Pembaruan Bahasa C++ di MSVC di Visual Studio 2022 17.14 |
Peningkatan kesuaian bahasa C++ | Peningkatan kesesuaian C++, perubahan perilaku, dan perbaikan bug di Visual Studio 2022 17.14 |
Sorotan cepat dari beberapa fitur baru:
Debugging Dinamis C++ memungkinkan Anda untuk men-debug kode yang dioptimalkan tanpa memengaruhi performa. Untuk informasi selengkapnya, lihat Penelusuran Kesalahan Dinamis C++.
Menerapkan fitur C++23 (memerlukan
/std:c++latest
atau/std:c++23preview
):static operator()
static operator[]
-
if consteval
. Memungkinkan Anda menjalankan kode yang berbeda tergantung pada apakah pernyataan dijalankan pada waktu kompilasi atau waktu proses.
Buat komentar dokumentasi secara otomatis dengan GitHub Copilot. Untuk informasi selengkapnya, lihat Memperkenalkan pembuatan komentar dokumentasi otomatis di Visual Studio.
Gunakan Pemilih Model di Visual Studio untuk memilih model AI Anda untuk GitHub Copilot. Untuk informasi lebih lanjut, lihat Mengubah model AI untuk Obrolan Copilot. Cuplikan layar ini memperlihatkan Pemilih Model di bagian bawah jendela obrolan GitHub Copilot:
Menu tarik-turun untuk Pemilih Model sudah terbuka. Opsinya meliputi: GPT-4o, o3-mini, Claude 3.7 Sonnet Thinking, dan lainnya.
Peningkatan integrasi Unreal Engine:
- Debugger Visual Studio C++ sekarang mendukung Blueprints Unreal Engine.
- Perintah untuk membuat file, modul, dan plugin tersedia secara asli di Visual Studio.
Bendera kompilator baru /forceInterlockedFunctions secara dinamis memilih antara beban Armv8.0, menyimpan instruksi eksklusif atau instruksi atom Ekstensi Sistem Besar (LSE) Armv8.1 berdasarkan kemampuan CPU saat runtime.
Menambahkan dukungan untuk penyelesaian berbasis IntelliSense dan info cepat untuk modul CMake di Visual Studio. Anda dapat melihat semua modul CMake yang tersedia dan saat mengarahkan mouse ke modul CMake yang dirujuk, IntelliSense memberikan info selengkapnya tentang modul yang dipilih:
Tangkapan layar adalah edit dalam file C Make Lists .txt. Kursor berada pada include (CMakePrintHelpers). Intellisense mengatakan: Fungsi kemudahan untuk mencetak properti dan variabel, berguna untuk debugging.
Saat Anda mulai mengetik nama modul CMake di file skrip CMake Anda
CMakeLists.txt
atau lainnya, IntelliSense menyediakan daftar modul yang tersedia untuk dipilih:Tangkapan layar adalah edit dalam file C Make Lists .txt. Kursor berada pada 'include' ( C Make. Dropdown Intellisense berisi entri untuk C Buat Tambahkan Subdirektori Fortran, C Buat Opsi Dependen, dan banyak lagi.
Pustaka Dukungan Pedoman (GSL) 4.2.0: Rilis ini mencakup peningkatan performa untuk
gsl::span
, fitur baru, dan penyelarasan yang lebih baik dengan standar C++. Untuk informasi selengkapnya, lihat Mengumumkan Panduan Dukungan Pustaka v4.2.0.
Apa yang baru untuk C++ di Visual Studio versi 17.13
Dirilis Februari 2025
Untuk informasi lebih lanjut tentang | Lihat |
---|---|
Apa yang baru untuk pengembang C++ | Apa yang Baru untuk Pengembang C++ di Visual Studio 2022 17.13 |
Fitur Standard Library (STL) C++26 dan C++23, resolusi masalah Language Working Group (LWG), peningkatan performa, perilaku yang diperbaiki, dan memperbaiki bug | STL Catatan Perubahan 17.13 |
Fitur baru di IDE | Catatan Rilis Visual Studio 2022 versi 17.13 |
Pembaruan bahasa C++ | pembaruan kompilator MSVC di Visual Studio 2022 17.13 |
Peningkatan kesuaian bahasa C++ | peningkatan Kesesuaian C++, perubahan perilaku, dan perbaikan bug di Visual Studio 2022 17.13 |
Sorotan cepat dari beberapa fitur baru:
peningkatan fitur bahasa C++
Cobalah fitur pratinjau C++23 dengan mengatur Standar Bahasa C++ ke
/std:c++23preview
. Pengaturan ini memungkinkan fitur C++23 terbaru dan perbaikan bug. Untuk informasi selengkapnya, lihat /std (Tentukan Versi Standar Bahasa).Dukungan untuk sufiks literal
size_t
C++23, yang membantu menghindari pemotongan atau ketidakcocokan perbandingan bertipe signed--terutama saat menulis loop. Contohnya:// 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) { ... }
Dukungan untuk panjang vektor untuk pembuatan kode pada x86 dan x64. Untuk informasi selengkapnya, lihat /vlen.
Dukungan untuk Intel Advanced Vector Extensions 10 versi 1. Untuk informasi selengkapnya tentang
/arch:AVX10.1
, lihat /arch (x64).
Pengembangan Pustaka Standar
Dukungan pustaka standar untuk korutin. Dalam contoh ini dari P2502R2, fungsi
fib
adalah koroutine. Ketika pernyataanco_yield
dijalankan,fib
ditangguhkan dan nilai dikembalikan ke pemanggil. Anda dapat melanjutkanfib
coroutine nanti untuk menghasilkan lebih banyak nilai tanpa memerlukan penanganan status manual apa pun: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{}); }
Memindahkan
system_clock
,high_resolution_clock
, danchrono_literals
dari header internal yang umum disertakan ke<chrono>
. Jika Anda melihat kesalahan pengkompilasi yang jenisnya sepertisystem_clock
atau literal yang ditentukan pengguna seperti1729ms
tidak dikenali, sertakan<chrono>
.Meningkatkan implementasi vektorisasi konstruktor
bitset
dari string,basic_string::find_last_of()
,remove()
,ranges::remove
, dan keluarga algoritmaminmax_element()
danminmax()
.Menambahkan implementasi vektorisasi dari:
-
find_end()
danranges::find_end
untuk elemen 1-bita dan 2-bita. -
basic_string::find()
danbasic_string::rfind()
untuk substring. -
basic_string::rfind()
untuk satu karakter.
-
Laporan Cacat C++23 yang Digabungkan:
GitHub Copilot
GitHub Copilot Free sekarang tersedia. Dapatkan 2.000 penyelesaian kode dan 50 permintaan obrolan per bulan tanpa biaya.
Penyelesaian kode GitHub Copilot memberikan saran pelengkapan otomatis langsung saat Anda ngoding. Untuk meningkatkan pengalaman pengembang C++, GitHub Copilot menyertakan file lain yang relevan sebagai konteks. Ini mengurangi kesalahan saat menawarkan saran yang lebih relevan dan akurat.
Sekarang Anda dapat meminta tinjauan kode dari GitHub Copilot dari jendela Perubahan Git:
Jendela Perubahan Git terbuka dengan tombol GitHub Copilot Review disorot.
GitHub Copilot mencari potensi masalah dan membuat komentar untuk mereka:
GitHub Copilot menemukan masalah dengan baris if (is_enabled_) new_site.disable(). Dikatakan bahwa mungkin ada kesalahan dan seharusnya menjadi if (is_enabled_) new_site.enable() karena maksudnya tampaknya adalah mengaktifkan situs baru jika breakpoint diaktifkan.
Untuk menggunakan fitur ini, pastikan hal berikut diaktifkan:
- Peralatan>Opsi>Fitur Pratinjau>Komentar Permintaan Penarikan
- Alat>Opsi>GitHub>Copilot>Source Control Integration>Mengaktifkan fitur pratinjau Git.
GitHub Copilot Edits adalah fitur baru yang dapat membuat perubahan di beberapa file di proyek Anda. Untuk memulai sesi Edit baru, klik Buat sesi edit baru di bagian atas jendela GitHub Copilot Chat:
Jelaskan perubahan yang ingin Anda buat dan Copilot menyarankan pengeditan yang relevan. Anda dapat mempratinjau pengeditan satu per satu dan menerima pengeditan yang Anda inginkan atau buat koreksi:
GitHub Copilot menampilkan ringkasan perubahan yang dibuatnya, seperti 1. Buat subkelas baru range_breakpoint di include/libsdb/breakpoint.hpp" dan 2. Terapkan kelas range_breakpoint di src/breakpoint.cpp. Opsi untuk menerima perubahan ditampilkan.
Untuk informasi selengkapnya, lihat Memproses beberapa file secara lebih efisien dengan GitHub Copilot Edits.
CMake
- Sekarang mendukung CMake Presets v9. Ekspansi makro baru dalam bidang penyertaan di prasetel. Untuk informasi selengkapnya, lihat ekspansi Makro dalam dokumentasi resmi CMake.
Apa yang baru untuk C++ di Visual Studio versi 17.12
Dirilis pada November 2024
Untuk informasi lebih lanjut tentang | Lihat |
---|---|
Apa yang baru untuk pengembang C++ | Yang Baru untuk Pengembang C++ di Visual Studio 2022 17.12 |
Standard Library (STL) menggabungkan fitur C++26 dan C++23, resolusi masalah Language Working Group (LWG), peningkatan performa, peningkatan perilaku, dan bug yang diperbaiki | STL Changelog 17.12 |
Fitur Baru di Visual Studio 17.12 IDE | Catatan Rilis Visual Studio 2022 versi 17.12 |
Peningkatan kesuaian bahasa C++ di Visual Studio 2022 17.12 | Peningkatan kesesuaian C++, perubahan perilaku, dan perbaikan bug di Visual Studio 2022 17.12 |
Sorotan cepat dari beberapa fitur baru:
-
Penyempurnaan Pustaka Standar
- Implementasi rentang Pemformatan C++23 (P2286R8) selesai. Menambahkan formatter untuk adaptor kontainer
stack
,queue
, danpriority_queue
. - Menambahkan operator subskrip multidisipional, yang juga mendukung
<mdspan>
. Misalnya:print("m[{}, {}]: '{}'; ", i, j, m[i, j])
.
- Implementasi rentang Pemformatan C++23 (P2286R8) selesai. Menambahkan formatter untuk adaptor kontainer
-
Pengembangan game di C++
- Buka langsung proyek Unreal Engine di Visual Studio tanpa harus menghasilkan file solusi Visual Studio yang membungkus proyek Unreal Engine. Untuk informasi selengkapnya, lihat Bekerja dengan proyek Unreal Engine di Visual Studio.
- Anda dapat menentukan argumen baris perintah yang akan diteruskan saat debugging melalui toolbar. Untuk informasi selengkapnya, lihat Mengatur argumen baris perintah untuk proyek Unreal Engine.
-
Membangun Wawasan
- Anda dapat menjalankan Build Insights pada file yang dipilih. Pilih file yang Anda inginkan di Penjelajah Solusi, klik kanan, dan pilih Jalankan Build Insights pada File yang Dipilih:
- Anda dapat memfilter hasil Build Insights berdasarkan proyek. Klik tombol filter pada header kolom filter dan pilih proyek yang ingin Anda lihat hasilnya:
- Mengklik ikon tanda tanya di jendela Build Insights untuk melihat deskripsi singkat untuk tab di jendela Build Insights, dan tautan ke dokumentasi untuk penjelasan terperinci:
- Anda dapat menjalankan Build Insights pada file yang dipilih. Pilih file yang Anda inginkan di Penjelajah Solusi, klik kanan, dan pilih Jalankan Build Insights pada File yang Dipilih:
-
GitHub Copilot
- Anda dapat mengklik Tanyakan Copilot di samping nilai variabel untuk mendapatkan wawasan berbasis AI ke dalam apa yang menyebabkan statusnya saat ini. Misalnya, program berikut memiliki kesalahan off-by-one dalam kondisi perulangannya:
Jika Anda mengklik ikon Tanya Copilot untuk variabelKode yang menyebabkan masalah ini adalah: for (auto it = h.animals_.begin(); it <= h.animals_.end(); it++).
it
, ikon tersebut akan menjelaskan mengapa variabel tersebut adalah<NULL>
.Kesalahan ini berada di dalam fungsi yang didefinisikan sebagai int calculate_number_of_cats(const house&h). Pesan GitHub Copilot mengatakan: "Nilai ekspresi itu ADALAH NULL, yang berarti bahwa iterator tidak menunjuk ke elemen yang valid di vektor animals_. Dalam konteks program Anda, seharusnya melakukan iterasi di atas vektor animals_ di objek rumah untuk menghitung jumlah objek kucing. Mengapa null. Berdasarkan informasi lokal dan konteks tumpukan panggilan: objek rumah h memiliki vektor animals_ yang kosong (ukuran=0). Kondisi perulangan it <= h.animals_.end() tidak benar. Seharusnya itu != h.animals_.end()."
- Anda dapat mengklik Tanyakan Copilot tentang kesalahan di Daftar Kesalahan Visual Studio untuk mendapatkan bantuan tentang kesalahan dan perbaikan yang disarankan. Contohnya:
Jika Anda mengklik Tanyakan Copilot, ini memberi tahu Anda tentang kesalahan:Ikon Ask Copilot disorot di samping kesalahan bahwa unique_ptr mencoba mereferensikan fungsi yang telah dihapus.
Pesan Copilot mengatakan: "Kesalahan terjadi karena perulangan berbasis rentang mencoba menyalin objek std::unique_ptr, yang tidak diizinkan karena std::unique_ptr tidak dapat disalin. Untuk memperbaiki ini, saya mengubah loop menjadi menggunakan referensi agar objek std::unique_ptr tidak perlu disalin. Dengan cara ini, perulangan berulang atas referensi ke objek std::unique_ptr, yang diizinkan."
-
Pemecahan Masalah
- Visualizer debug baru untuk
mutex
,recursive_mutex
, danmove_iterator
. - Debugger sekarang menampilkan nilai pengembalian sebaris:
- Visualizer debug baru untuk
Apa yang baru untuk C++ di Visual Studio versi 17.11
Dirilis Agustus 2024
Untuk informasi lebih lanjut tentang | Lihat |
---|---|
Apa yang baru untuk pengembang C++ | Yang Baru untuk Pengembang C++ di Visual Studio 2022 17.11 |
Pustaka Standar (STL) menggabungkan fitur C++26 dan C++23, laporan cacat pada C++20, resolusi masalah Language Working Group (LWG), peningkatan kinerja, perilaku yang diperbaiki, dan memperbaiki bug. | STL Changelog 17.11 |
Fitur baru di Visual Studio 17.11 IDE | Catatan Rilis Visual Studio 2022 versi 17.11 |
Peningkatan kesuaian bahasa C++ di Visual Studio 2022 17.11 | Peningkatan kesesuaian C++, perubahan perilaku, dan perbaikan bug di Visual Studio 2022 17.11 |
Daftar parsial fitur baru:
Penyempurnaan Pustaka Standar
- Implementasi output berformat sekarang mencakup
std::range_formatter
dan formatter untukstd::pair
danstd::tuple
. - Menambahkan dukungan untuk
std::println()
tanpa argumen. Ini mencetak baris kosong seperti yang diusulkan dalam P3142R0. - Vektorisasi yang ditingkatkan untuk beberapa algoritma termasuk
replace_copy()
, ,replace_copy_if()
,ranges::replace_copy
,ranges::replace_copy_if
,find_first_of()
danranges::find_first_of
, untuk elemen 8-bit dan 16-bit,mismatch()
, ,ranges::mismatch
count()
,ranges::count
find()
,ranges::find
,ranges::find_last
danranges::iota
.
- Implementasi output berformat sekarang mencakup
Pengembangan game di C++
- Anda sekarang dapat menambahkan templat, modul, dan plugin kelas Unreal Engine umum dari dalam Visual Studio. Untuk informasi selengkapnya, lihat Menambahkan kelas, modul, dan plugin Unreal Engine di Visual Studio.
- Toolbar Unreal Engine baru menyediakan akses cepat ke tindakan terkait Unreal Engine dari dalam Visual Studio. Toolbar memungkinkan Anda untuk dengan cepat melampirkan ke proses Unreal Engine, memindai ulang cache Blueprints, dengan cepat mengakses Log Unreal Engine, dan memberikan akses cepat ke Halaman Konfigurasi Unreal Engine untuk Visual Studio. Untuk informasi selengkapnya, lihat Unreal Engine Toolbar.
- Sekarang Anda dapat memfilter hasil pelacakan menurut proyek. Selain itu, hasil di setiap baris menunjukkan jalur relatif dan nama file alih-alih jalur lengkap. Pengelompokan hasil dalam tampilan File yang Disertakan juga ditingkatkan:
Tampilan File yang Disertakan memiliki kolom baru untuk proyek. Kolom Proyek dipilih dan proyek seperti (Pilih Semua), CompilerIdC, OpenAL, umum, dan sebagainya, dipilih. File yang disertakan dicantumkan berdasarkan jalur relatif dan nama file dan dikelompokkan bersama-sama.
penelusuran kesalahan CMake
- Anda sekarang dapat men-debug skrip dan
CMakeLists.txt
file CMake Anda di debugger Visual Studio untuk proyek CMake yang menargetkan Linux melalui Subsistem Windows untuk Linux (WSL) atau SSH. Untuk memulai sesi penelusuran kesalahan CMake di Visual Studio, atur titik henti di file AndaCMakeLists.txt
lalu navigasi ke Project>Configure Cache dengan CMake Debugging.
- Anda sekarang dapat men-debug skrip dan
GitHub Copilot
- Saat Anda mengarahkan mouse ke atas simbol di editor kode, klik tombol Copilot Beritahu saya lebih banyak di dialog Info Cepat untuk mempelajari lebih lanjut tentang simbol tertentu.
Jendela Info Cepat diperlihatkan di atas fungsi. Tautan Pelajari selengkapnya disorot.
- GitHub Copilot dapat menghasilkan saran penamaan untuk pengidentifikasi Anda (variabel, metode, atau kelas) berdasarkan bagaimana pengidentifikasi Anda digunakan dan gaya kode Anda.
Dialog Ganti Nama memiliki bidang Nama baru dengan daftar dropdown yang memperlihatkan pilihan berikut: text_color, font_color, display_color, console_color, dan menu_text_color.
Anda memerlukan langganan GitHub Copilot aktif. Klik kanan variabel yang ingin Anda ganti namanya, dan pilih Ganti Nama (
Ctrl+R
,Ctrl+R
). Pilih ikon gitHub Copilot sparkle untuk menghasilkan saran penamaan.Pemecahan Masalah
- Titik henti kondisi di C++ lebih cepat.
Peningkatan diagnostik
- Diagnostik yang ditingkatkan saat memanggil
std::get<T>
padastd::tuple
yang dengan beberapa instanceT
dalam argumen templatnya. MSVC digunakan untuk melaporkan:
error C2338: static_assert failed: 'duplicate type T in get<T>(tuple)'
.
Sekarang melaporkan:
error C2338: static_assert failed: 'get<T>(tuple<Types...>&) requires T to occur exactly once in Types.(N4971 [tuple.elemm]/5)'
- Diagnostik yang ditingkatkan jika
std::ranges::to
tidak bisa menghasilkan hasil yang diminta. MSVC digunakan untuk melaporkan:
error C2338: static_assert failed: 'the program is ill-formed per N4950 [range.utility.conv.to]/2.3'
Sekarang melaporkan:
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)'
- Diagnostik yang ditingkatkan saat memanggil
Apa yang baru untuk C++ di Visual Studio versi 17.10
Dirilis Mei 2024
Untuk informasi lebih lanjut tentang | Lihat |
---|---|
Apa yang baru untuk pengembang C++ | Apa yang baru untuk Pengembang C++ di Visual Studio 2022 17.10 |
Pustaka Standar (STL) menggabungkan fitur C++26 dan C++23, laporan cacat pada C++20, resolusi masalah Language Working Group (LWG), peningkatan kinerja, perilaku yang diperbaiki, dan memperbaiki bug. | STL Changelog 17.10 |
Fitur baru di Visual Studio 17.10 IDE | Catatan Rilis Visual Studio 2022 versi 17.10 |
Peningkatan kesuaian bahasa C++ di Visual Studio 2022 17.10 | Peningkatan kesesuaian C++, perubahan perilaku, dan perbaikan bug di Visual Studio 2022 17.10 |
Daftar parsial fitur baru:
- MSVC Toolset Update: Versi toolset MSVC diperbarui dari 19.39 ke 19.40. Ini dapat memengaruhi proyek yang memiliki asumsi versi. Untuk informasi selengkapnya tentang beberapa cara di mana ini memengaruhi proyek yang mengasumsikan bahwa versi MSVC semuanya adalah 19,3X untuk rilis Visual Studio 2022, lihat MSVC Toolset Minor Version Number 14.40 di VS 2022 v17.10.
-
Penyempurnaan Pustaka Standar: Pustaka standar menambahkan dukungan untuk P2510R3 Format Penunjuk, yang membuat kumpulan penentu format untuk penunjuk saat menggunakan
std::format
lebih sesuai dengan yang sudah ada untuk bilangan bulat. Meningkatkan implementasi vektorisasi daristd::min_element
,std::ranges::min
dan teman. - Build Insights: Sekarang menyediakan informasi instansiasi templat. Lihat Tampilan Templat untuk Wawasan Build di Visual Studio atau C++ Virtual Murni - Tampilan Templat untuk Build Insights di rekaman Visual Studio.
- Plugin Unreal Engine: Ada fitur opsional baru yang memungkinkan Plugin Unreal Engine berjalan di latar belakang, mengurangi waktu startup. Ini adalah fitur opt-in yang diaktifkan melalui Alat>Opsi>Unreal Engine.
- Fitur baru untuk Linux: Lihat Fitur Pengembangan Linux Baru di Visual Studio.
- Target CMake: Anda sekarang dapat menyematkan target pada Tampilan Target CMake.
- Pengelola Sambungan UX: Pengalaman pengguna memberikan pengalaman yang lebih mulus saat terhubung ke sistem jarak jauh. Untuk informasi selengkapnya, lihat Peningkatan Kegunaan di Pengelola Sambungan Visual Studio.
- Komentar permintaan tarik: Anda sekarang dapat melihat komentar GitHub dan Azure DevOps langsung di file kerja Anda. Aktifkan pengaturan fitur, Komentar Permintaan Tarik di Opsi>Lingkungan>Fitur Pratinjau dan periksa cabang permintaan tarik untuk memulai.
- Konten yang Dihasilkan AI: GitHub Copilot sekarang dapat membuat draf deskripsi permintaan pull. Memerlukan langganan GitHub Copilot aktif. Cobalah dengan mengklik ikon pena kilau Tambahkan Deskripsi Permintaan Tarik yang Dihasilkan AI di dalam jendela Buat Permintaan Tarik.
-
Pratinjau Gambar: Arahkan mouse ke atas jalur gambar untuk melihat pratinjau lengkap dengan detail ukuran. Ukurannya dibatasi hingga lebar 500 px dan tinggi.
Tetikus melayang di atas baris std::filesystem::path vs_logo_path = "../images/vs_logo.png". Di bawahnya muncul pratinjau logo Visual Studio dan informasi bahwa ukurannya 251 x 500 piksel dan 13,65 KB.
- Pembuatan Titik Henti/Titik Pelacakan: Anda sekarang dapat membuat titik henti atau titik pelacakan bersyarat langsung dari ekspresi dalam kode sumber melalui menu klik kanan. Ini berfungsi pada properti atau nama kolom dan nilai dari otomatisasi, lokal, jendela pemantauan, atau Petunjuk Data.
- Dialog Lampirkan ke Proses: Fungsionalitas yang disediakan oleh dialog Lampirkan ke Proses lebih mudah digunakan. Anda sekarang dapat dengan mudah beralih antara tampilan pohon dan daftar, mengatur proses dengan lebih baik dengan bagian yang dapat diciutkan, dan memilih jenis kode dengan kotak kombo yang disederhanakan. Selain itu, fitur "Pilih/Lacak Jendela" sekarang lebih mudah digunakan, memungkinkan pelacakan dua arah: memilih proses menyoroti jendelanya, dan mengklik jendela memilih prosesnya.
-
Integrasi GitHub Copilot: Ekstensi GitHub Copilot dan Copilot Chat sekarang disatukan dan kini tersedia langsung di Visual Studio. Untuk menginstalnya, instal komponen GitHub Copilot di Penginstal Visual Studio:
Antarmuka GitHub Copilot berada di sudut kanan atas Visual Studio. Untuk menggunakannya, Anda memerlukan langganan GitHub Copilot aktif.
Tombol GitHub Copilot ditampilkan di sudut kanan atas Visual Studio. Ini memiliki opsi untuk membuka jendela obrolan, pengaturan GitHub Copilot, mempelajari lebih lanjut, dan mengelola langganan copilot.
Apa yang baru untuk C++ di Visual Studio versi 17.9
Dirilis Februari 2024
Untuk informasi lebih lanjut tentang | Lihat |
---|---|
Apa yang baru untuk pengembang C++ | Apa yang baru untuk Pengembang C++ di Visual Studio 2022 17.9 |
Fitur C++23 dari Pustaka Standar (STL) digabungkan, peningkatan performa, perilaku yang lebih baik, penyelesaian masalah Language Working Group (LWG), dan perbaikan bug | STL Changelog 17.9 |
Fitur baru di Visual Studio 17.9 IDE | Catatan Rilis Visual Studio 2022 versi 17.9 |
Peningkatan kesuaian bahasa C++ di Visual Studio 2022 17.9 | Peningkatan kesesuaian C++, perubahan perilaku, dan perbaikan bug di Visual Studio 2022 |
Ringkasan pembaruan backend C++ | Pembaruan MSVC Backend sejak Visual Studio 2022 versi 17.3 |
Daftar parsial fitur baru:
-
#include
diagnostik, yang menyediakan analisis terperinci tentang arahan Anda#include
. Aktifkan fitur ini dengan mengklik kanan#include
dan memilih arahan #include>Aktifkan diagnostik arahan #include. Di atas masing-masing#include
adalah berapa kali kode Anda mereferensikan file tersebut#include
. Klik tautan referensi untuk menavigasi ke tempat kode Anda menggunakan sesuatu dari file header tersebut. Untuk melihat waktu build direktif Anda#include
, jalankan Build Insights dengan membuka Build>Run Build Insights on Solution>Build.Di atas # include adalah tautan **referensi** dan banyak referensi ke file # include ini (dalam hal ini 1). Waktu build juga tercantum (dalam hal ini kurang dari 1/2 detik).
- Visualisasi tata letak memori, yang menunjukkan bagaimana memori diatur untuk kelas, struktur, dan union Anda. Arahkan kursor ke jenis dan pilih tautan Tata Letak Memori di Info Cepat untuk membuka jendela khusus yang menampilkan tata letak memori dari jenis yang dipilih. Menggerakkan mouse di atas tipe data individu dalam jendela ini memberikan informasi terperinci tentang ukuran dan offset dalam tipe tersebut.
Jendela tata letak memori menunjukkan isi kelas Snake. Ini menunjukkan offset memori dari berbagai bidang kelas seperti kelas Point untuk lokasi kepala dan isi, skor, dan sebagainya.
- Anda sekarang dapat menentukan executable CMake kustom Anda sendiri. Fitur ini berguna jika Anda ingin menggunakan versi CMake tertentu yang tidak dikirimkan dengan Visual Studio. Arahkan ke Alat>Opsi dan pilih CMake>Umum. Pilih Aktifkan 'Eksekusi CMake Kustom' dan berikan jalur direktori eksekusi CMake Anda.
Dialog opsi CMake dengan opsi "Aktifkan CMake kustom yang dapat dieksekusi" dan bidang "CMake Executable Directory" disorot.
- IntelliSense yang ditingkatkan untuk proyek Unreal Engine.
- Dukungan C++23 yang ditingkatkan:
std::format
danstd::span
formattable
,range_format
,format_kind
, danset_debug_format()
sebagai bagian dari P2286R8 Pemformatan Rentang<mdspan>
sesuai dengan P0009R18 dan perubahan kata-kata berikutnya yang diterapkan pada Standar C++23. Selain itu,format()
dapat memformat penunjuk per P2510R3.
Apa yang baru untuk C++ di Visual Studio versi 17.8
Dirilis Nov 2023
Untuk informasi lebih lanjut tentang | Lihat |
---|---|
Apa yang baru untuk pengembang C++ | Apa yang baru untuk Pengembang C++ di Visual Studio 2022 17.8 |
Pustaka Standar (STL) menggabungkan fitur-fitur C++26, C++23, ekstensi C++20, resolusi masalah dari Language Working Group (LWG), peningkatan performa, perilaku yang lebih baik, dan memperbaiki bug. | STL Changelog 17.8 |
Fitur baru di Visual Studio 17.8 IDE | Catatan Rilis Visual Studio 2022 versi 17.8 |
Peningkatan kesuaian bahasa C++ di Visual Studio 2022 17.8 | Peningkatan kesesuaian C++, perubahan perilaku, dan perbaikan bug di Visual Studio 2022 |
Gambaran umum peningkatan C++ di Visual Studio, VISUAL Code, dan vcpkg selama 2023 | Setahun penyempurnaan C++ |
Daftar parsial fitur baru:
- Diagnostik terstruktur C++ di jendela Output dan jendela detail masalah baru yang menyediakan informasi selengkapnya tentang kesalahan tersebut. Untuk informasi selengkapnya, lihat Output SARIF Terstruktur dan Jendela Detail Masalah.
- Fitur yang memungkinkan Anda memvisualisasikan ukuran dan penyelarasan kelas, struktur, serikat, jenis dasar, atau enum bahkan sebelum kode dikompilasi. Arahkan kursor pada pengidentifikasi dan Informasi Cepat menampilkan informasi ukuran dan perataan.
- Fitur yang menunjukkan kapan harus menandai fungsi anggota
const
karena tidak mengubah status objek. Arahkan mouse ke atas fungsi anggota dan klik ikon bola lampu untuk menandai fungsi sebagaiconst
. - Visual Studio sekarang meminta Anda untuk menandai fungsi global sebagai statis melalui ikon obeng yang muncul dengan nama fungsi. Klik ikon obeng untuk menandai fungsi sebagai statis.
- Arahan #include yang tidak digunakan diredupkan di editor. Anda dapat mengarahkan mouse ke atas penyertaan yang disamarkan dan menggunakan menu lampu untuk menghapus penyertaan itu atau semua penyertaan yang tidak digunakan. Anda juga dapat menambahkan
#include
arahan untuk entitas yang secara tidak langsung disertakan melalui header lain. Untuk informasi selengkapnya, lihat Membersihkan C/C++ yang disertakan di Visual Studio. - Dukungan Lebih Lanjut untuk Unreal Engine
- "Unreal Engine Test Adapter memungkinkan Anda menemukan, menjalankan, mengelola, dan melakukan debug pengujian Unreal Engine Anda tanpa meninggalkan Visual Studio IDE."
- Dengan Unreal Engine Code Snippets, Anda dapat menemukan konstruksi umum dari Unreal Engine sebagai cuplikan dalam daftar kode Anda.
- Build Insights sekarang terintegrasi dengan Visual Studio 2022 dan berfungsi dengan proyek MSBuild dan CMake menggunakan MSVC. Anda sekarang dapat melihat informasi tambahan tentang kompilasi fungsi seperti berapa lama waktu yang dibutuhkan untuk mengkompilasi dan jumlah ForceInlines, dan dampak file header pada waktu build. Untuk informasi selengkapnya, lihat Tutorial: Mengatasi masalah fungsi inlining pada waktu build dan Tutorial: Mengatasi masalah dampak file header pada waktu build.
- Dukungan pengujian unit Linux jarak jauh sekarang memungkinkan Anda menjalankan pengujian CTest dan GTest pada komputer Linux jarak jauh Anda dari Test Explorer Visual Studio, sama seperti pengujian lokal Anda.
Apa yang baru untuk C++ di Visual Studio versi 17.7
Dirilis Agu 2023
Untuk informasi lebih lanjut tentang | Lihat |
---|---|
Apa yang baru untuk pengembang C++ | Apa yang baru untuk Pengembang C++ di Visual Studio 2022 17.7 |
Fitur C++ baru khusus untuk pengembangan game | Melepaskan Kekuatan Visual Studio 2022 untuk Pengembangan Game C++ |
Pustaka Standar (STL) menggabungkan fitur C++23, resolusi masalah Language Working Group (LWG), peningkatan performa, perilaku yang disempurnakan, dan perbaikan bug. | STL Changelog 17.7 |
Fitur baru di Visual Studio 17.7 IDE | Catatan Rilis Visual Studio 2022 versi 17.7 |
Peningkatan kesuaian bahasa C++ di Visual Studio 2022 17.7 | Peningkatan kesesuaian C++, perubahan perilaku, dan perbaikan bug di Visual Studio 2022 |
Daftar parsial fitur baru:
- Sesi penelusuran kesalahan yang lebih cepat dan waktu pemuatan proyek yang lebih cepat
- Visualisasi langkah demi langkah ekspansi makro
- Unduhan sekali klik untuk Subsistem Windows Linux (WSL)
- Dukungan yang ditingkatkan untuk komentar Doxygen
- C++ Build Insights untuk pengembangan game
- Ditambahkan
/std:clatest
untuk pengkompilasi C. - Peningkatan proyek Unreal Engine mencakup IntelliSense yang lebih cepat, pewarnaan sintaks yang lebih cepat, kemampuan untuk menemukan semua referensi Blueprint Unreal Engine, dan banyak lagi.
Apa yang baru untuk C++ di Visual Studio versi 17.6
Dirilis Mei 2023
Untuk informasi lebih lanjut tentang | Lihat |
---|---|
Apa yang baru untuk pengembang C++ | Apa yang Baru untuk Pengembang C++ di Visual Studio 2022 17.6 |
Pustaka Standar (STL) menggabungkan fitur C++23, resolusi masalah Language Working Group (LWG), peningkatan performa, perilaku yang disempurnakan, dan perbaikan bug. | STL Changelog 17.6 |
Fitur baru di Visual Studio 17.6 IDE | Catatan Rilis Visual Studio 2022 versi 17.6 |
Peningkatan kesuaian bahasa C++ di Visual Studio 2022 17.6 | Peningkatan kesesuaian C++, perubahan perilaku, dan perbaikan bug di Visual Studio 2022 |
Daftar parsial fitur baru meliputi:
- Pencarian kesalahan skrip CMake
- Dukungan bawaan untuk Bahasa Bayangan Tingkat Tinggi (HLSL)
- Penampil Log Unreal Engine
- VCPKG sekarang ditambahkan secara default
- Dukungan awal untuk C++20 dalam proyek C++/CLI dan beberapa fitur pustaka standar C++23 untuk rentang.
Apa yang baru untuk C++ di Visual Studio versi 17.5
Dirilis Februari 2023
Untuk informasi lebih lanjut tentang | Lihat |
---|---|
Apa yang baru untuk pengembang C++ | Apa yang Baru untuk Pengembang C++ di Visual Studio 2022 17.5 |
Pustaka Standar (STL) menggabungkan fitur C++23, resolusi masalah Language Working Group (LWG), peningkatan performa, perilaku yang disempurnakan, dan perbaikan bug. | STL Changelog 17.5 |
Fitur baru dalam Visual Studio 17.5 IDE | Catatan Rilis Visual Studio 2022 versi 17.5 |
Daftar parsial fitur baru meliputi:
std::move
, ,std::forward
std::move_if_noexcept
, danstd::forward_like
sekarang tidak menghasilkan panggilan fungsi dalam kode yang dihasilkan, bahkan dalam mode debug. Perubahan ini menghindari penggunaan tipe tertentu yang menyebabkan overhead yang tidak perlu dalam build debug./permissive-
(atau opsi yang menyiratkannya, seperti/std:c++20
ataustd:c++latest
) diperlukan.Ditambahkan
[[msvc::intrinsic]]
. Anda dapat menerapkan atribut ini ke fungsi nonrekursif yang terdiri dari satu cast, yang hanya mengambil satu parameter.Menambahkan dukungan untuk Konsol Linux di Terminal Terintegrasi, yang memungkinkan I/O terminal.
Menambahkan dukungan eksperimental awal untuk primitif atom C11 (
<stdatomic.h>
). Anda dapat mengaktifkan fitur eksperimental ini dengan/experimental:c11atomics
opsi dalam/std:c11
mode atau yang lebih baru.Menambahkan serangkaian pemeriksaan keyakinan tinggi eksperimental baru ke Pemeriksa Masa Pakai untuk mengurangi kebisingan.
Fitur pratinjau baru, Remote File Explorer, memungkinkan Anda melihat direktori file di komputer jarak jauh Anda dalam VS, dan mengunggah dan mengunduh file ke dalamnya.
Perubahan versi executable CMake yang disertakan dengan Visual Studio agar sesuai dengan versi Kitware.
Menambahkan dukungan untuk Hot Reload ke templat Proyek CMake.
Buka Definisi C++ sekarang menggunakan indikator yang lebih halus untuk operasi yang membutuhkan lebih banyak waktu, menggantikan dialog modal pada versi sebelumnya.
Memulai peluncuran eksperimen yang memberikan hasil yang lebih cerdas dalam pelengkapan otomatis kode dan daftar anggota C++. Fungsionalitas ini sebelumnya dikenal sebagai Predictive IntelliSense tetapi sekarang menggunakan metode presentasi baru.
Kami sekarang mengirim toolset Arm64 Clang asli dengan beban kerja LLVM kami, memungkinkan kompilasi asli pada mesin Arm64.
Menambahkan pelokalan ke Ekstensi Image Watch (Ekstensi ini tersedia di Marketplace, dan tidak dibundel melalui Alat Penginstal Visual Studio).
Menambahkan dukungan untuk membuka jendela Terminal ke dalam Kontainer Pengembang yang sedang berjalan.
Melakukan beberapa peningkatan pada ekspansi makro IntelliSense. Terutama, kami mengaktifkan ekspansi rekursif dalam konteks yang lebih banyak, dan kami menambahkan opsi ke pop up untuk menyalin ekspansi ke clipboard atau memperluas makro sebaris.
Pemantauan bersamaan sekarang didukung di Serial Monitor. Pemantauan bersamaan memungkinkan Anda memantau beberapa port secara bersamaan. Tekan tombol plus untuk membuka Serial Monitor lain dan memulai.
Anda sekarang dapat melihat properti dari kelas dasar yang dimodifikasi dalam aset Unreal Blueprint tanpa meninggalkan Visual Studio. Klik dua kali pada referensi Blueprint untuk kelas atau properti C++ untuk membuka Pemeriksa Aset UE di Visual Studio.
Mengaktifkan menjalankan DevContainers pada komputer Linux jarak jauh.
Memungkinkan pemilihan beberapa target untuk dibangun dalam tampilan CMake Targets.
Menambahkan dukungan untuk CMakePresets.json versi 5. Lihat dokumentasi CMake untuk informasi fitur baru.
Mengaktifkan Test Explorer untuk membangun dan menguji beberapa target CMake secara paralel.
Menambahkan opsi "Buka kontainer di terminal" ke Kontainer Dev.
Fitur pustaka standar yang diimplementasikan:
Apa yang baru untuk C++ di Visual Studio versi 17.4
Dirilis Nov 2022
Untuk informasi lebih lanjut tentang | Lihat |
---|---|
Apa yang baru untuk pengembang C++ | Apa yang Baru untuk Pengembang C++ di Visual Studio 2022 17.4 |
Pustaka Standar (STL) menggabungkan fitur C++23, resolusi masalah Language Working Group (LWG), peningkatan performa, perilaku yang disempurnakan, dan perbaikan bug. | STL Changelog 17.4 |
Fitur baru di Visual Studio 17.4 IDE | Catatan Rilis Visual Studio 2022 versi 17.4 |
Peningkatan kesuaian bahasa C++ di Visual Studio 2022 17.4 | Peningkatan kesesuaian C++, perubahan perilaku, dan perbaikan bug di Visual Studio 2022 |
Daftar parsial fitur baru di 17.4:
Pesan kesalahan kompilator yang ditingkatkan untuk memberikan informasi yang lebih benar dan berguna, terutama untuk konsep.
Menambahkan opsi MSVC eksperimental
/experimental:log<directory>
untuk menyimpan diagnostik SARIF terstruktur ke dalam direktori yang ditentukan.Menambahkan dukungan untuk atribut C23 ke IntelliSense dan melanjutkan kemajuan dalam dukungan modul C++20.
Peningkatan performa pengindeksan saat membuka solusi baru. Proyek besar dapat melihat peningkatan 20-35% dari 17,3.
Peningkatan Optimalisasi Nilai Pengembalian Bernama (NRVO):
- NRVO diaktifkan untuk kasus yang melibatkan penanganan pengecualian atau perulangan.
- NRVO diaktifkan bahkan di bawah
/Od
jika pengguna meneruskan opsi/Zc:nrvo
, atau/std:c++20
lebih baru, atau/permissive-
. - Anda sekarang dapat menonaktifkan NRVO dengan
/Zc:nrvo-
opsi .
Meningkatkan versi LLVM yang dikirim dengan Visual Studio ke 15.0.1. Untuk informasi selengkapnya tentang apa yang tersedia, lihat catatan rilis LLVM dan Clang .
Menambahkan dukungan di Visual Studio untuk artefak vcpkg dalam proyek CMake. Untuk proyek yang menyertakan manifes vcpkg, lingkungan diaktifkan secara otomatis pada proyek terbuka. Pelajari selengkapnya tentang fitur ini di aktivasi lingkungan vcpkg di posting blog Visual Studio .
Sekarang Anda dapat menggunakan Kontainer Dev untuk proyek C++Anda. Pelajari selengkapnya tentang fitur ini di posting blog Dev Containers for C++kami.
IntelliSense kini menghormati urutan header yang sudah disertakan sebelumnya ketika salah satunya adalah PCH. Sebelumnya, ketika PCH digunakan melalui
/Yu
dan disertakan secara paksa melalui/FI
, IntelliSense akan selalu memprosesnya terlebih dahulu, sebelum header lain yang disertakan melalui/FI
. Perilaku ini tidak cocok dengan perilaku build. Dengan perubahan ini,/FI
header diproses dalam urutan yang ditentukan.Menghapus awalan internal dari nama CTest di Test Explorer.
Memperbarui versi CMake yang dikirim dengan Visual Studio ke versi 3.24.1. Untuk detail tentang apa yang tersedia, lihat catatan rilis CMake.
Pembaruan Android SDK:
- Skrip Ant dihapus, sehingga pengguna tidak lagi dapat melihat templat berbasis Ant dalam dialog Proyek Baru. Untuk bantuan bermigrasi dari templat Ant ke templat Gradle, lihat Memigrasikan Build Dari Apache Ant
- Menambahkan dukungan untuk mengembangkan dengan NDK 23 dan 24
- Komponen NDK yang diperbarui ke LTS versi 23
Menambahkan implementasi vektorisasi dari
ranges::min_element()
, ,ranges::max_element()
danranges::minmax_element()
Kami terus melacak perkembangan terbaru dalam standardisasi C++. Dukungan untuk fitur C++23 ini tersedia dengan menyertakan
/std:c++latest
dalam opsi pengkompilasi Anda:P2499R0
string_view
Konstruktor Rentang Harusexplicit
auto(x)
P0849R8 : decay-copy Dalam Bahasa(Bagian pengkompilasi belum diimplementasikan. Bagian pustaka diimplementasikan dalam mode C++20 ketika dukungan Rentang awalnya diterapkan.)
P2301R1 Tambah
pmr
Alias Untukstd::stacktrace
ranges::iota
P2440R1 ,ranges::shift_left
,ranges::shift_right
Menambahkan opsi "Navigasi setelah Buat Deklarasi/Definisi" untuk memungkinkan Anda memilih perilaku navigasi fitur Buat Deklarasi/Definisi. Anda dapat memilih antara mengintip (default) atau membuka dokumen, atau tanpa navigasi.
Build Arm64 dari Visual Studio sekarang menggabungkan CMake dan Ninja versi Arm64.
Menambahkan dukungan untuk CMake Presets versi 4. Untuk detail tentang apa yang tersedia, lihat catatan rilis CMake.
Koneksi sistem jarak jauh menggunakan Pengelola Sambungan sekarang mendukung SSH ProxyJump. ProxyJump digunakan untuk mengakses host SSH melalui host SSH lain (misalnya, untuk mengakses host di belakang firewall).
Apa yang baru untuk C++ di Visual Studio versi 17.3
Dirilis Agu 2022
Untuk informasi lebih lanjut tentang | Lihat |
---|---|
Apa yang baru untuk pengembang C++ | Peningkatan C++ pada 17.3 |
Pustaka Standar (STL) menggabungkan fitur C++23, resolusi masalah Language Working Group (LWG), peningkatan performa, perilaku yang disempurnakan, dan perbaikan bug. | STL Changelog 17.3 |
Fitur Baru dalam Visual Studio IDE 17.3 | Catatan Rilis Visual Studio 2022 versi 17.3 |
Peningkatan kesuaian bahasa C++ di Visual Studio 2022 17.3 | Peningkatan kesesuaian C++, perubahan perilaku, dan perbaikan bug di Visual Studio 2022 |
Daftar parsial fitur baru di 17.3:
- Toolchain Arm64EC tidak lagi ditandai sebagai eksperimental dan siap untuk penggunaan produksi.
- Terminal Visual Studio sekarang dapat digunakan sebagai klien SSH dengan koneksi SSH tersimpan Anda. Dengan C++ untuk Alat Linux terinstal, buka jendela alat Terminal. Menu dropdown Terminal diisi dengan koneksi tersimpan Anda. Saat Anda memilih koneksi, jendela Terminal baru terbuka di dalam Visual Studio yang menampilkan terminal pseudo pada sistem jarak jauh Anda. Karakter kontrol, warna, dan kesadaran posisi kursor semuanya didukung.
- Visual Studio sekarang dapat menambahkan templat kelas Unreal Engine untuk proyek UE Anda. Untuk mencoba fitur ini, pastikan dukungan IDE untuk Unreal Engine dipilih dalam pengembangan Game dengan beban kerja C++ di Alat Penginstal Visual Studio. Saat Anda mengerjakan proyek UE, klik kanan proyek atau folder/filter dan pilih Tambahkan>Kelas UE.
- Buka Definisi sekarang mengingat definisi sebelumnya dan menavigasi sesuai ketika tidak ada kecocokan yang lebih baik tersedia (misalnya, setelah Anda mengubah definisi salah satu dari pasangan secara manual). Responsivitas Go To All ditingkatkan. Sebelumnya, hasil muncul setelah Anda berhenti mengetik. Dalam pengalaman baru, hasil ditampilkan saat Anda mengetik.
- Dalam konteks yang memerlukan penyelesaian tipe
enum
(misalnya, penugasan ke variabelenum
, label kasus, pengembalian tipeenum
, dan sebagainya), daftar pelengkapan otomatis sekarang difilter hanya ke enumerator yang cocok dan konstruksi terkait. - Menambahkan dukungan NuGet PackageReference untuk proyek C++/CLI MSBuild yang menargetkan .NET Core. Perubahan ini dilakukan untuk membuka blokir basis kode campuran agar tidak dapat mengadopsi .NET Core. Dukungan ini tidak berfungsi untuk jenis proyek C++ lainnya atau jenis proyek C++ apa pun yang menargetkan .NET Framework. Tidak ada rencana untuk memperluas dukungan PackageReference ke skenario C++ lainnya. Tim sedang mengerjakan pengalaman terpisah yang melibatkan vcpkg untuk skenario non-MSBuild dan untuk menambahkan fungsionalitas yang lebih besar.
- Menambahkan jendela Serial Monitor untuk pengembangan tersemat, tersedia melalui Debug>Windows>Serial Monitor.
- Peningkatan pengindeksan C++ sebesar ~66% dibandingkan dengan 17,2.
- Memperbarui versi CMake yang dikirim dengan Visual Studio ke versi 3.23. Lihat catatan rilis CMake 3.23 untuk detail tentang apa yang tersedia.
- Meningkatkan versi alat LLVM yang dikirim dengan Visual Studio ke v14. Untuk detail tentang apa yang tersedia, lihat catatan rilis LLVM dan Clang .
- Memperbarui Toolset C++ Dev 16.11 berdampingan ke versi 14.29.30145.00. Versi terbaru Dev 16.11 C++ Toolset berisi perbaikan bug penting, termasuk memperbaiki semua laporan cacat C++20 yang tersisa. Untuk informasi selengkapnya tentang perbaikan bug, termasuk laporan cacat C++20 di Dev 16.11, lihat Catatan rilis Visual Studio 2019 versi 16.11.14.
- Melakukan berbagai peningkatan pada pengalaman dalam editor modul C++. Kami terus berupaya meningkatkan kualitas pengalaman tetapi mendorong Anda untuk mencobanya di 17.3. Laporkan masalah yang tersisa melalui Komunitas Pengembang.
Apa yang baru untuk C++ di Visual Studio versi 17.2
Dirilis Mei 2022
Untuk informasi lebih lanjut tentang | Lihat |
---|---|
Apa yang baru untuk pengembang C++ | Visual Studio 2022 17.2 sekarang tersedia |
Pustaka Standar (STL) menggabungkan laporan cacat C++20, fitur C++23, resolusi masalah dari Language Working Group (LWG), peningkatan performa, peningkatan pada perilaku, dan perbaikan bug. | STL Changelog 17.2 |
Fitur baru di Visual Studio 17.2 IDE | Catatan Rilis Visual Studio 2022 versi 17.2 |
Peningkatan kesuaian bahasa C++ di Visual Studio 2022 17.2 | Peningkatan kesesuaian C++, perubahan perilaku, dan perbaikan bug di Visual Studio 2022 |
Daftar parsial fitur baru di 17.2:
- Menambahkan dukungan pengompilasi untuk fitur C++23 deducing
this
, tersedia dengan opsi/std:c++latest
. - Menambahkan dukungan IntelliSense untuk fitur C++23 menyimpulkan
this
danif consteval
. - Menambahkan dukungan petunjuk nama dan tipe parameter sebaris, yang dapat diaktifkan dengan menekan Alt+F1 atau mengetuk Ctrl dua kali. Perilaku ini dapat disesuaikan pada Alat > Opsi > Editor Teks > C/C++ > IntelliSense.
- Menambahkan dukungan eksperimental untuk modul C++20 dalam proyek CMake. Dukungan ini saat ini hanya tersedia dengan generator Visual Studio (MSBuild).
- Pada 17.1, kami memperkenalkan register periferal dan tampilan RTOS untuk pengembang sistem tertanam. Kami terus meningkatkan kemampuan tampilan tersebut dengan peningkatan kegunaan di 17.2:
- Jendela alat RTOS sekarang disembunyikan secara default. Ini mencegah menampilkan jendela alat dengan pesan kesalahan yang tidak relevan saat Anda tidak menggunakan RTOS.
- Saat Anda mengeklik dua kali objek RTOS di jendela alat, objek menambahkan pengawasan untuk objek tersebut.
- Saat Anda memilih nilai awal dan akhir untuk penunjuk tumpukan di jendela alat RTOS, nilai tersebut akan terbuka di jendela memori.
- Menambahkan dukungan utas untuk target perangkat ke jendela tumpukan panggilan.
- Pengguna sekarang dapat memilih ikon sematkan di samping periferal, daftar, atau bidang untuk menyematkannya di bagian atas Tampilan Periferal.
- Menambahkan implementasi laporan cacat C++20 yang tersisa (juga dikenal sebagai backport). Semua fitur C++20 sekarang tersedia di bagian opsi
/std:c++20
. Untuk informasi selengkapnya tentang backport-backport yang telah diimplementasikan, lihat Changelog VS 2022 di repositori GitHub Microsoft/STL dan posting blog MSVC's STL Completes/std:c++20
. - Kami menambahkan berbagai fitur Pustaka C++23, tersedia di bagian opsi
/std:c++latest
. Untuk informasi selengkapnya tentang fitur baru, lihat catatan perubahan repositori STL. - Peningkatan performa pengindeksan C++ awal hingga 20%, tergantung kedalaman grafik yang disertakan.
Yang baru untuk C++ di Visual Studio versi 17.1
Dirilis Februari 2022
Untuk informasi lebih lanjut tentang | Lihat |
---|---|
Apa yang baru untuk pengembang C++ | Visual Studio 2022 17.1 sekarang tersedia! |
Pustaka Standar (STL) menggabungkan fitur C++23, resolusi masalah Language Working Group (LWG), peningkatan performa, perilaku yang disempurnakan, dan perbaikan bug. | STL Changelog 17.1 |
Fitur baru di Lingkungan Pengembangan Terpadu (IDE) Visual Studio 17.1 | Catatan Rilis Visual Studio 2022 versi 17.1 |
Peningkatan kesuaian bahasa C++ di Visual Studio 2022 17.1 | Peningkatan kesesuaian C++, perubahan perilaku, dan perbaikan bug di Visual Studio 2022 |
Daftar parsial fitur baru di 17.1:
- Templat Konfigurasi Preset baru ditambahkan untuk mengonfigurasi dan membangun proyek CMake pada sistem macOS jarak jauh dengan
CMakePresets.json
. Anda juga bisa meluncurkan target CMake pada sistem macOS jarak jauh, lalu men-debug dari jarak jauh di debugger Visual Studio dengan dukungan GDB atau LLDB. - Anda sekarang bisa melakukan debug terhadap core dump pada sistem macOS remote dari Visual Studio dengan LLDB atau GDB.
- Versi
Clang
danLLVM
yang dikirim dengan Visual Studio ditingkatkan ke v13. - Integrasi CMake Visual Studio hanya aktif saat sebuah
CMakeLists.txt
diidentifikasi di akar ruang kerja terbuka. Jika sebuahCMakeLists.txt
teridentifikasi di tingkat lain dari ruang kerja, maka Anda akan diberi pemberitahuan untuk mengaktifkan integrasi CMake Visual Studio. - Tampilan baru yang memungkinkan Anda memeriksa dan berinteraksi dengan register periferal pada objek mikrokontroler dan sistem operasi real time (RTOS), tersedia melalui Debug>Windows>Embedded Registers
- Menambahkan tampilan utas baru untuk proyek RTOS, yang dapat diakses melalui Debug>Windows>RTOS Objects. Untuk informasi selengkapnya, lihat Pengembangan Perangkat Lunak yang Disematkan di Visual Studio.
Yang baru untuk C++ di Visual Studio versi 17.0
Dirilis Nov 2021
Untuk informasi lebih lanjut tentang | Lihat |
---|---|
Fitur baru di Visual Studio 17.0 IDE | Catatan Rilis Visual Studio 2022 versi 17.0 |
Pustaka Standar (STL) menggabungkan fitur C++23 dan C++26, laporan kesalahan C++20, resolusi masalah Language Working Group (LWG), peningkatan performa, perilaku yang ditingkatkan, dan perbaikan bug. | STL Changelog 17.0 |
Peningkatan kesuaian bahasa C++ di Visual Studio 2022 17.0 | Peningkatan kesesuaian C++, perubahan perilaku, dan perbaikan bug di Visual Studio 2022 17.10 |
Gambaran umum beberapa fitur baru di Visual Studio 2022 versi 17.0:
- Visual Studio IDE,
devenv.exe
, sekarang menjadi aplikasi 64-bit khusus. - Toolset MSVC sekarang menggunakan secara default hashing sumber SHA-256 di catatan debug. Sebelumnya, toolset memakai MD5 untuk hashing sumber secara default.
- Alat pembangunan v143 sekarang tersedia melalui alat penginstal Visual Studio dan di alat pembangunan mandiri.
Hot Reload untuk C++ asli
- Hot Reload untuk C++ memungkinkan pembuatan banyak jenis pengeditan kode ke aplikasi yang sedang berjalan dan menerapkannya tanpa perlu menjeda eksekusi aplikasi dengan sesuatu misalnya titik henti.
Pada Visual Studio 2022, saat memulai aplikasi di debugger, Anda dapat menggunakan tombol Hot Reload untuk memodifikasi aplikasi saat masih berjalan. Pengalaman ini didukung oleh fitur bawaan Edit and Continue. Untuk informasi selengkapnya mengenai pengeditan yang didukung, lihat Edit dan Lanjutkan (C++).
- Hot Reload mendukung proyek CMake serta Open Folder.
Dukungan WSL2
- Anda sekarang bisa membangun dan men-debug secara khusus di WSL2 tanpa membuat koneksi SSH. Proyek CMake lintas platform serta proyek Linux berbasis MSBuild didukung.
Dukungan CMake yang disempurnakan
Meningkatkan versi CMake yang dikirim dengan Visual Studio ke versi 3.21. Untuk informasi selengkapnya tentang apa yang tersedia dalam versi ini, lihat catatan rilis CMake 3.21.
Halaman Gambaran Umum CMake diperbarui untuk mendukung
CMakePresets.json
.Anda sekarang bisa mengonfigurasi serta membangun proyek CMake Anda dengan CMake 3.21 dan
CMakePresets.json
v3.Visual Studio sekarang mendukung opsi
buildPresets.targets
diCMakePresets.json
. Opsi ini memungkinkan Anda untuk membangun subset target di proyek CMake Anda.Menu Proyek dalam proyek CMake disederhanakan dan mengekspos opsi ke "Hapus Cache dan Konfigurasi Ulang" dan "Lihat Cache."
Menerapkan opsi pengkompilasi untuk mencantumkan
/scanDependencies
dependensi modul C++20 untuk proyek CMake, seperti yang dijelaskan dalam P1689R5. Ini adalah langkah menuju dukungan untuk pembangunan proyek berbasis modul dengan CMake dan kami berupaya untuk menyelesaikan dukungan ini dalam rilis selanjutnya.
Peningkatan Pustaka Standar
Peningkatan Pustaka Standar (STL) pilihan yang disorot di sini. Untuk daftar lengkap fungsionalitas baru, perubahan, perbaikan bug, serta peningkatan performa, lihat Changelog tim STL.
- Menambahkan visualizer penelusuran kesalahan untuk meningkatkan bagaimana jenis berikut ditampilkan:
source_location
,bind_front()
,u8string
(dan iteratornya),default_sentinel_t
,unreachable_sentinel_t
.ranges::empty_view
,ranges::single_view
,ranges::iota_view
(dan iterator/sentinelnya),ranges::ref_view
,thread
,thread::id
,jthread
, danfilesystem::path
- Menambahkan
[[nodiscard]]
ke keluarga fungsistoi()
di<string>
dan ke berbagai fungsi di<locale>
seperti fungsi anggotacollate
,has_facet()
, dan keluargaisalnum()
sertatolower()
. -
P0980R1 Dibuat
std::string
constexpr
di VS 2019 16.10. Sekarang ada dukungan untuk Clang. -
P1004R2 Dibuat
std::vector
constexpr
di VS 2019 16.10. Sekarang ada dukungan untuk Clang.
Fitur C++23 yang disorot
-
P1048R1 Ditambahkan
is_scoped_enum
, sifat baru untuk pustaka Standar C++, yang mendeteksi apakah suatu jenis adalah enumerasi yang tercakup. -
out_ptr()
P1132R7,inout_ptr()
-
P1679R3 Untuk
contains()
danbasic_string
-
to_underlying()
P1682R3 untuk enumerasi -
P2162R2 Izinkan pewarisan dari
std::variant
-
P2166R1 Melarang pembangunan
basic_string
danbasic_string_view
darinullptr
. Perubahan ini adalah perubahan pemecah sumber. Kode yang sebelumnya mempunyai perilaku yang tidak terdefinisi saat runtime sekarang ditolak dengan kesalahan penyusun. -
P2186R2 Menghapus dukungan pengumpulan sampah. Perubahan ini menghapus
declare_reachable
,undeclare_reachable
,declare_no_pointers
,undeclare_no_pointers
,get_pointer_safety
. Sebelumnya, fungsi-fungsi ini tidak berpengaruh.
Peningkatan performa unggulan
-
<format>
sekarang mendeteksi saat melakukan penulisan keback_insert_iterator
untukbasic_string
atauvector
, dan melakukan panggilaninsert()
yang lebih cepat keend()
dari kontainer. - Kami meningkatkan performa
std::find()
danstd::count()
masing-masing sebesar 19 kali dan 26 kali (kali, bukan persen). - Kami meningkatkan performa
std::count()
untukvector<bool>
-
std::byte
sekarang mempunyai performa yang sama sepertiunsigned char
dalamreverse()
danvariant::swap()
Dukungan Clang serta LLVM
Alat LLVM yang dikirim dengan Visual Studio ditingkatkan ke LLVM 12. Untuk informasi selengkapnya, lihat rekaman rilis LLVM.
Dukungan Clang-cl diperbarui ke LLVM 12.
Sekarang Anda bisa memecahkan kesalahan proses yang berjalan pada sistem remote dari Visual Studio dengan menggunakan LLDB.
C++ AMP tidak digunakan lagi
- Header C++ AMP sekarang tidak digunakan lagi. Termasuk
<amp.h>
dalam proyek C++ menghasilkan kesalahan pembangunan. Untuk menghilangkan kesalahan, tentukan_SILENCE_AMP_DEPRECATION_WARNINGS
. Untuk informasi selengkapnya, lihat tautan Penghentian Dukungan AMP kami.
Penyempurnaan IntelliSense
- Kami melakukan penyempurnaan di C++ IntelliSense saat memberikan penyorotan navigasi serta sintaks untuk jenis dari Modul dan Unit Header yang diimpor. IntelliSense merupakan area aktif investasi bagi kami. Bantu kami meningkatkan: Bagikan umpan balik Anda mengenai Komunitas Pengembang dengan menggunakan Bantuan>Kirim Umpan Balik.
- Kami meningkatkan performa C++ IntelliSense dengan mengoptimalkan penggunaan header dalam cache serta akses database simbol, sehingga waktu pemuatan untuk masuk ke kode Anda menjadi lebih baik.
- Linter Kode IntelliSense untuk C++ sekarang aktif secara otomatis, memberikan saran instan secara langsung saat Anda mengetik dan saran perbaikan untuk cacat kode umum.
- C++ IntelliSense untuk proyek CMake sekarang berfungsi saat menggunakan preset dengan sebuah nama tampilan.
Pembaruan Beban Kerja C++
- Diperbarui ke NDK r21 LTS dalam beban kerja Pengembangan Seluler C++.
- Pengembangan Game dengan workload C++ kini menginstal Unreal Engine terbaru yang mendukung Visual Studio 2022.
Peningkatan analisis kode
- Analisis kode sekarang memberlakukan bahwa nilai pengembalian fungsi yang dianotasi dengan
_Check_return_
atau_Must_inspect_result_
harus diperiksa. - Deteksi dereferensi pointer null ditingkatkan dalam alat analisis kode kami.
- Menambahkan dukungan untuk
gsl::not_null
pada analisis kode. - Dukungan untuk Libfuzzer pada opsi kompilasi
/fsanitize=fuzzer
.
Catatan rilis untuk versi yang lebih lama
Catatan rilis untuk versi C++ yang lebih lama juga tersedia:
- Untuk informasi yang baru untuk C++ di Visual Studio 2019, lihat Yang baru untuk C++ di Visual Studio 2019.
- Untuk informasi tentang apa yang baru untuk C++ di Visual Studio 2017, lihat Apa yang baru untuk C++ di Visual Studio 2017.
- Untuk informasi tentang apa yang baru dalam versi sebelumnya, lihat Visual C++ Apa yang baru 2003 hingga 2015.
Masalah umum
C++ IntelliSense
Untuk informasi selengkapnya mengenai masalah terbuka lainnya serta solusi yang tersedia untuk C++ di Visual Studio 2022, lihat daftar masalah Komunitas Pengembang C++.
Umpan balik dan saran
Kami ingin mendengar pendapat Anda! Anda bisa Melaporkan Masalah atau Menyarankan Fitur dengan menggunakan ikon Kirim Umpan Balik di sudut kanan atas penginstal atau Visual Studio IDE, atau dari Bantuan>Kirim Umpan Balik. Anda bisa melacak masalah dengan menggunakan Visual Studio Developer Community, tempat Anda menambahkan komentar atau mencari solusi. Anda juga bisa mendapatkan bantuan pemasangan gratis melalui dukungan Live Chat kami.
Blog
Manfaatkan wawasan dan rekomendasi yang tersedia di situs Blog Pengembang Microsoft untuk tetap mendapatkan informasi terbaru tentang semua rilis baru. Blog ini mencakup posting pembahasan mendalam tentang beragam fitur. Blog Tim C++ dan Blog Visual Studio sangat menarik.