/Zc:referenceBinding (Menerapkan aturan pengikatan referensi)
Ketika opsi /Zc:referenceBinding ditentukan, pengkompilasi tidak mengizinkan referensi lvalue non-const untuk mengikat ke sementara.
Sintaks
/Zc:referenceBinding[-]
Keterangan
Jika /Zc:referenceBinding ditentukan, pengkompilasi mengikuti bagian 8.5.3 dari standar C++11: Ini tidak mengizinkan ekspresi yang mengikat jenis yang ditentukan pengguna sementara ke referensi lvalue non-const. Secara default, atau jika /Zc:referenceBinding- ditentukan, pengkompilasi memungkinkan ekspresi seperti ekstensi Microsoft, tetapi peringatan tingkat 4 dikeluarkan. Untuk keamanan kode, portabilitas, dan kesesuaian, kami sarankan Anda menggunakan /Zc:referenceBinding.
Opsi /Zc:referenceBinding nonaktif secara default. Opsi /permissive- compiler secara implisit mengatur opsi ini, tetapi dapat ditimpa dengan menggunakan /Zc:referenceBinding-.
Contoh
Sampel ini menunjukkan ekstensi Microsoft yang memungkinkan sementara jenis yang ditentukan pengguna terikat ke referensi lvalue non-const.
// zcreferencebinding.cpp
struct S {
};
void f(S&) {
}
S g() {
return S{};
}
int main() {
S& s = g(); // warning C4239 at /W4
const S& cs = g(); // okay, bound to const ref
f(g()); // Extension: error C2664 only if /Zc:referenceBinding
}
Untuk informasi selengkapnya tentang masalah kesuaian di Visual C++, lihat Perilaku Nonstandar.
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 menyertakan /Zc:referenceBinding lalu pilih OK.
Lihat juga
Opsi Pengkompilasi MSVC
Sintaks Baris Perintah Pengkompilasi MSVC
/Zc (Kesuaian)