/Zc:hiddenFriend (Standart C++ gizli arkadaş kurallarını zorunlu tut)

Derleyicinin gizli arkadaş işlevlerinin veya işlev şablonlarının C++ standart işlemesine uygun olduğunu belirtir.

Sözdizimi

/Zc:hiddenFriend[-]

Açıklamalar

seçeneği, /Zc:hiddenFriend seçenek davranışının /permissive- bir alt kümesini etkinleştirir. Derleyiciye gizli arkadaşlar için standarda uymasını söyler. Derleyici yalnızca, kapsayan sınıf türünün açık örnekleri veya şablon parametreleri için bağımsız değişkene bağımlı aramada (ADL) gizli arkadaşları içerir. Kısıtlama, bir türdeki işlemlerin örtük dönüştürmelere uygulanmasını sağlamak için gizli arkadaşlarınızı kullanmanıza olanak tanır. Bu seçenek, başka türlü kullanamıyor /permissive-kodda derleme hızını artırabilir.

Gizli arkadaş, yalnızca bir friend sınıf veya sınıf şablonu tanımı içinde bildirilen bir işlev veya işlev şablonudur. Varsayılan olarak, Microsoft C++ derleyicisi olması gereken her yerde aşırı yükleme çözümleme adayı olarak gizli arkadaş bildirimlerini kaldırmaz. Bu eski davranış, gizli arkadaş işlevlerini daha fazla bağlama olası adaylar olarak ekleyerek derleyiciyi yavaşlatabilir.

Standart C++ gizli arkadaş davranışı altında /permissive-varsayılan olarak etkindir. Seçenek belirtildiğinde /permissive- eski gizli arkadaş davranışını belirtmek için kullanın /Zc:hiddenFriend-. C++20 Modüllerinin kullanılması standart gizli arkadaş davranışı gerektirir.

Bu /Zc:hiddenFriend seçenek Visual Studio 2019 sürüm 16.4'den itibaren kullanılabilir.

belirttiğinizde /Zc:hiddenFriendderleyici davranışı örnekleri için bkz . Gizli arkadaş adı arama kuralları.

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 veya içerecek /Zc:hiddenFriend- /Zc:hiddenFriend şekilde değiştirin ve ardından Tamam'ı seçin.

Ayrıca bkz.

/Zc (Uyumluluk)
/permissive-