/Zc:hiddenFriend
(Menerapkan aturan teman tersembunyi C++ Standar)
Menentukan pengkompilasi sesuai dengan perawatan standar C++ dari fungsi teman tersembunyi atau templat fungsi.
Sintaks
/Zc:hiddenFriend
[-
]
Keterangan
Opsi ini /Zc:hiddenFriend
memungkinkan subset /permissive-
perilaku opsi. Ini memberi tahu kompilator agar sesuai dengan standar untuk teman-teman tersembunyi. Pengkompilasi hanya menyertakan teman tersembunyi dalam pencarian dependen argumen (ADL) untuk instans eksplisit atau parameter templat dari jenis kelas penutup. Pembatasan memungkinkan Anda menggunakan teman tersembunyi untuk menjaga operasi pada jenis agar tidak diterapkan ke konversi implisit. Opsi ini dapat meningkatkan kecepatan build dalam kode yang tidak dapat menggunakan /permissive-
.
Teman tersembunyi adalah templat fungsi atau fungsi yang friend
dideklarasikan hanya dalam definisi templat kelas atau kelas. Secara default, kompilator Microsoft C++ tidak menghapus deklarasi teman tersembunyi sebagai kandidat untuk resolusi kelebihan beban di mana pun seharusnya. Perilaku warisan ini dapat memperlambat kompilator dengan menyertakan teman tersembunyi berfungsi sebagai kandidat yang mungkin dalam konteks yang lebih banyak.
Perilaku teman tersembunyi C++ standar diaktifkan secara default di bawah /permissive-
. Untuk menentukan perilaku teman tersembunyi warisan saat /permissive-
opsi ditentukan, gunakan /Zc:hiddenFriend-
. Penggunaan Modul C++20 memerlukan perilaku teman tersembunyi standar.
Opsi /Zc:hiddenFriend
ini tersedia mulai di Visual Studio 2019 versi 16.4.
Untuk contoh perilaku pengkompilasi saat Anda menentukan /Zc:hiddenFriend
, lihat Aturan pencarian nama teman tersembunyi.
Untuk mengatur opsi pengkompilasi ini di lingkungan pengembangan Visual Studio
Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.
Pilih halaman properti Properti>Konfigurasi C/C++>Baris Perintah.
Ubah properti Opsi Tambahan untuk disertakan
/Zc:hiddenFriend
atau/Zc:hiddenFriend-
lalu pilih OK.