Bagikan melalui


/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

  1. Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.

  2. Pilih halaman properti Properti>Konfigurasi C/C++>Baris Perintah.

  3. Ubah properti Opsi Tambahan untuk menyertakan /Zc:referenceBinding lalu pilih OK.

Lihat juga

Opsi Pengkompilasi MSVC
Sintaks Baris Perintah Pengkompilasi MSVC
/Zc (Kesuaian)