/Zc:referenceBinding (Başvuru bağlama kurallarını zorla)
/Zc:referenceBinding seçeneği belirtildiğinde, derleyici const olmayan lvalue başvurusunun geçici bir bağlantıya bağlanmasına izin vermez.
Sözdizimi
/Zc:referenceBinding[-]
Açıklamalar
/Zc:referenceBinding belirtilirse, derleyici C++11 standardının 8.5.3. bölümünü izler: Kullanıcı tanımlı bir türü const olmayan lvalue başvurusuna geçici olarak bağlayan ifadelere izin vermez. Varsayılan olarak veya /Zc:referenceBinding- belirtilirse, derleyici bu tür ifadelere Microsoft uzantısı olarak izin verir, ancak düzey 4 uyarısı verilir. Kod güvenliği, taşınabilirlik ve uyumluluk için /Zc:referenceBinding kullanmanızı öneririz.
/Zc:referenceBinding seçeneği varsayılan olarak kapalıdır. /permissive- derleyici seçeneği bu seçeneği örtük olarak ayarlar, ancak /Zc:referenceBinding- kullanılarak geçersiz kılınabilir.
Örnek
Bu örnek, kullanıcı tanımlı türün geçici bir öğesinin sabit olmayan lvalue başvurusuna bağlanmasına izin veren Microsoft uzantısını gösterir.
// 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
}
Visual C++'daki uyumluluk sorunları hakkında daha fazla bilgi için bkz . Standart Dışı Davranış.
Bu derleyici seçeneğini Visual Studio geliştirme ortamında ayarlamak için
Projenin Özellik Sayfaları iletişim kutusunu açın. Ayrıntılar için bkz . Visual Studio'da C++ derleyicisi ve derleme özelliklerini ayarlama.
Yapılandırma Özellikleri>C/C++>Komut Satırı özellik sayfasını seçin.
Ek Seçenekler özelliğini /Zc:referenceBinding öğesini içerecek şekilde değiştirin ve tamam'ı seçin.
Ayrıca bkz.
MSVC Derleyicisi Seçenekleri
MSVC Derleyicisi Komut Satırı Söz Dizimi
/Zc (Uyumluluk)