/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

  1. Projenin Özellik Sayfaları iletişim kutusunu açın. Ayrıntılar için bkz . Visual Studio'da C++ derleyicisi ve derleme özelliklerini ayarlama.

  2. Yapılandırma Özellikleri>C/C++>Komut Satırı özellik sayfasını seçin.

  3. 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)